酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

SQLを使って日別で集計する

記事が投稿された日付ごとのデータを収集したいと考えていました。

SQLを使って日別で集計する

データベースではdatetime型で保存していたため、投稿日時でgruop byしてしまうと下図のように時間まで含めてグループ化されてしまいました。

select PublishTime as "date", count(ArticleId) as "count"
from dbo.NewsArticles
group by PublishTime
order by date desc

実行結果

日付ごとでデータをグループ化したい場合には、下記のSQLのようにdatetime型をconvertする必要がありました。

select convert(VARCHAR, PublishTime, 111) as date, count(ArticleId) as 
from dbo.NewsArticles
group by convert(VARCHAR, PublishTime, 111)
order by date desc

実行結果

参考