SQLServerで日付要素の差を取得するには、DATEDIFF関数を使用します。
構文
- (DATEDIFF関数の構文)
- DATEDIFF(<日付要素>, <開始日>, <終了日>)
戻り値の型はint型です。
<日付要素>には以下表のdatepart名またはdatepart省略形を指定します。
要素 | datepart名 | datepart省略形 |
---|---|---|
年 | year | yy、yyyy |
四半期 | quarter | qq, q |
月 | month | mm, m |
日 | day | dd, d |
週 | week | wk、ww |
時間 | hour | hh |
分 | minute | mi、n |
秒 | second | ss, s |
ミリ秒 | millisecond | ms |
マイクロ秒 | microsecond | mcs |
ナノ秒 | nanosecond | ns |
<開始日>と<終了日>に指定する値は、
以下の型または以下の型に変換できる値であればOKです。
date、datetime、datetimeoffset、datetime2、smalldatetime、time
サンプル
例)日付要素の差を取得するサンプル
1 2 3 4 5 6 7 8 9 |
-- 2つの日付の日付の差を取得する SELECT DATEDIFF(DAY, convert(datetime, '2020-01-01 00:00:00.000'), convert(datetime, '2020-02-01 10:20:30.123')) ⇒31 -- 2つの日付の時間の差を取得する SELECT DATEDIFF(HOUR, convert(datetime, '2020-01-01 00:00:00.000'), convert(datetime, '2020-01-01 10:20:30.123')) ⇒10 |
以下のように日付文字列でもOKです
1 2 3 4 5 6 |
SELECT DATEDIFF(DAY, '2020-01-01 00:00:00.000', '2020-02-01 10:20:30.123') ⇒31 SELECT DATEDIFF(YEAR, '2020-01-01', '2022-02-01') ⇒2 |