SQL ServerのSQLで日付、時刻の加算や減算をするコードを紹介します。
SQL ServerのSQLで日付、時刻の加算や減算をするには、DATEADD() 関数を利用します。
DATEADD([加算、減算の単位], [加算、減算数], [元の日付の値])
加算、減算の単位には次の値が設定できます。
| 値 | 意味 |
|---|---|
| year | 年 |
| quarter | 3カ月 (Q) |
| month | 月 |
| dayofyear | 日 |
| day | 日 |
| week | 週 |
| weekday | 日 |
| hour | 時 |
| minute | 分 |
| second | 秒 |
| millisecond | ミリ秒 |
| microsecond | マイクロ秒 |
| nanosecond | ナノ秒 |
加算、減算数に制の値を与えると加算、負の値を与えると減算になります。
元の日付の値には、加算、減算をする元の日付、時刻の値を与えます。
select DATEADD(day, -5, '2024-06-10')
2024-06-05 00:00:00.000
select DATEADD(year, 2, '2024-08-20')
2026-08-20 00:00:00.000
select DATEADD(minute, 8, '1990-05-15 20:30:45')
1990-05-15 20:38:45.000
現在時刻に対して減算する例です。
select DATEADD(day, -7, GETDATE())
現在時刻に対して減算する例です。dateフィールドが現在日時の7日前より大きい(直近の)レコードを取得します。
select * from MyTable where DATEADD(day, -7,GETDATE()) < date