さまざまな時間単位の日付への加算
以下の文は、指定された日付に 1 週を加算します。1 週の加算は 7 日の加算になるので、2022-03-05 00:00:00 が返されます。DATEADD では時刻部分が省略されます。
SELECT DATEADD('week',1,'2022-02-26') AS NewDate
以下の文は、指定されたタイムスタンプに 5 か月を加算し、2022-04-26 12:00:00 を返します。5 か月を加算すると年もインクリメントされるので、DATEADD では月と年の両方が変更されます。
SELECT DATEADD(MM,5,'2021-11-26 12:00:00') AS NewDate
以下の文も、タイムスタンプに 5 か月を加算し、2021-06-30 12:00:00 を返します。月のみをインクリメントすると無効な日付である 6 月 31 日になるので、DATEADD では日と月の両方が変更されます。
SELECT DATEADD('mm',5,'2021-01-31 12:00:00') AS NewDate
以下の文は、タイムスタンプに 45 分を加算し、2022-02-26 12:45:00 を返します。
SELECT DATEADD(MI,45,'2022-02-26 12:00:00') AS NewTime
以下の文も、タイムスタンプに 45 分を加算しますが、この場合は日がインクリメントされ、さらに月もインクリメントされます。その結果、2022-03-01 00:15:00 が返されます。
SELECT DATEADD('mi',45,'2022-02-28 23:30:00') AS NewTime
以下の文は元のタイムスタンプを 45 分デクリメントし、2021-12-31 23:25:00 を返します。
SELECT DATEADD(N,-45,'2022-01-01 00:10:00') AS NewTime
以下の文は、現在の日付に 60 日を加算し、各月の総日数に合わせて結果を調整します。
SELECT DATEADD(D,60,CURRENT_DATE) AS NewDate
以下の文で最初の DATEADD は、指定された日に 92 日を加算し、2022-03-22 00:00:00 を返します。2 番目の DATEADD は、指定された日付に 1 四半期を加算し、2022-03-20 00:00:00 を返します。四半期のインクリメントを実行すると、月フィールドが 3 インクリメントされます。必要に応じて、DATEADD は年フィールドもインクリメントし、指定された月の総日数に合わせて結果を調整します。
SELECT DATEADD('dd',92,'2021-12-20') AS NewDateD,
DATEADD('qq',1,'2021-12-20') AS NewDateQ
上記の文はすべて日付部分に省略形を使用していますが、完全な名前で指定することもできます。例えば、以下の文は日付に 92 日を加算し、2022-03-22 00:00:00 を返します。
SELECT DATEADD('day',92,'2021-12-20') AS NewDate
以下の埋め込み SQL コードは、ホスト変数を使用して前述の SQL 文と同じ DATEADD 処理を実行します。
set datePart = "day"
set numUnits = 92
set dateIn = "2021-12-20"
&sql(SELECT DATEADD(:datePart,:numUnits,:dateIn) INTO :dateOut)
write "in: ",dateIn,!,"out: ",dateOut