2017-08-17 10 views
0

私はタイムスタンプ付きのテーブルを持っており、毎月のタイムスタンプの合計数を数えたいと思う。結果を返す次のスクリプトがあります。これを行う簡単な方法はありますか?SQLサーバーのdatetime列から各月の日時エントリをカウントする

select 
    substring(convert(varchar(12), dt_create, 112), 0, 7) as month, 
    count(substring(convert(varchar(12), dt_create, 112), 0, 7)) as signups 
from 
    table_name 
group by 
    substring(convert(varchar(12), dt_create, 112), 0, 7) 
order by 
    1 

出力

month signups 
---------------- 
201705 5959 
201706 9782 
201707 13663 
201708 7385 

答えて

2

文字値が遅くなり、あなたはこれをしようとすることで、パフォーマンスが増加する場合があります。

SELECT  Year = YEAR(dt_create), 
      Month = MONTH(dt_create), 
      signups = COUNT(dt_create) 
    FROM  table_name 
    GROUP BY YEAR(dt_create), 
      MONTH(dt_create) 
; 
関連する問題