目次

datetime, datetime2 型のフィールドで日別に集計したい - SQL Server

SQL Serverでdatetime, datetime2 型のフィールドで日別に集計する方法を紹介します。

概要

ログなどで、datetime型でレコードを記録している場合に、日単位で件数などを集計したい場合があります。 この記事では、SQL Server でdatetime型やdatetime2型のフィールドを日別に集計する方法を紹介します。

方法

datetime, datetime2型をdate型に変換して、group by を利用して集計します。datetime, datetime2型のdate型への変換はこちらの記事を参照してください。

以下のテーブルを例にします。
mylog テーブル
idviewdaate
int型datetime型

このテーブルで日ごとのレコード件数を求める場合は以下のクエリを実行します。
select count(id) as cnt, convert(date, viewdate) as cdate 
  from mylog
  group by convert(date, viewdate)
  order by convert(date, viewdate)

解説

select文で count(id) でレコードの件数を表示します。また、convert(date, viewdate) datetime型をdate型に変換した日付のみの値を表示します。
集計はgroup byで convert(date, viewdate) で日付の値を用いて集計します。変換した日付の値で集計することで日単位での集計結果となります。
表示順も order by convert(date, viewdate) を利用することで日付の値で昇順でソートされます。

表示結果

上記のSQLを実行した結果です。日単位で集計できていることが確認できます。


著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
最終更新日: 2020-06-24
作成日: 2020-06-24
iPentec all rights reserverd.