佐々木屋

技術的なことから趣味まで色々書きます

datetime型から年、月、日、時、分などを操作

前回SQL-Serverのdatetime型の値を日付のみで比較操作するお話でしたが、日付ではなく年や日、時だったりと部分だけを操作する方法です。
前回同様のテーブルを考えます。

支店コード 支店名 アクセス日時
001 岐阜支店 2018-12-11 19:07:33
002 多治見支店 2018-12-12 22:39:46
003 大垣支店 2018-12-21 09:15:53
004 山県支店 2018-12-20 18:19:24
005 各務原支店 2018-12-21 09:31:30


DATEPART関数を利用すれば簡単にアクセスできます。
DATEPART (Transact-SQL) | Microsoft Docs

例えば、9時台のアクセスを取得する場合は、

SELECT * FROM テーブルA WHERE DATEPART(hour,アクセス日時) = 9

支店コード 支店名 アクセス日時
003 大垣支店 2018-12-21 09:15:53
005 各務原支店 2018-12-21 09:31:30


当然ながら、SELECT文の表示にも使用できます。例えばアクセス日時が9時台の支店の日のみを表示したい場合は、

SELECT 支店名,DATEPART(day,アクセス日時) ASFROM テーブルA 
WHERE DATEPART(hour,アクセス日時) = 9

支店名
大垣支店 21
各務原支店 21

こんな感じです。