SQLで日付の足し算をするDATEADD関数について記載しています。
対応データベース:SQL Server Access
DATEADD関数の文法
SELECT DATEADD(日付要素,日付,加算値) FROM テーブル
引数 | 日付要素 | 数値型 |
日付 | 文字列型 | |
加算値 | 数値型 | |
返値 | 文字型 計算後の日付が戻ります。 |
SQLServer
引数 | 日付要素 | 数値型 |
引数 | 日付 | 以下のいずれかの値で解決できる式 date datetime datetimeoffset datetime2 smalldatetime time |
加算値 | 数値型 | |
返値 | int | YEAR は DATEPART (year、date) と同じ値を返します。 日付には、時刻部分のみが含まれる、戻り値は基準年を 1900 年にです。 |
DATEADD関数は指定された日付の日付要素に対して加算を行い日付を戻します。数値にマイナス値を指定した場合は日付の日付要素から減算します。
SQL Server、Accessの日付の要素
SQL Server | 省略形 | Access | |
---|---|---|---|
年 | year | yy,yyyy | yyyy |
四半期 | quarter | qq,q | q |
月 | month | mm,m | m |
年始からの通算日 | dayofyear | dy,y | y |
日 | day | dd,d | d |
週 | week | wk,ww | ww |
曜日 | weekday | dw | w |
時間 | hour | hh | h |
分 | minute | mi,n | n |
秒 | second | ss,s | s |
ミリ秒 | millisecond | ms |
Accessの場合は日付要素を’m’のように文字列で指定します。
SQL Server

DATEADD (Transact-SQL) - SQL Server
DATEADD 関数の Transact-SQL リファレンス。 この関数では、指定の datepart によって変更されている日付が返されます。
実行例
SQLServerの実行例
1か月後の日付を求める
/* SQL Server 2010/04/30の1か月後の日付を求めるサンプル */
SELECT DATEADD(MONTH,1,'2010-04-30');

1か月前の日付を求める
/* SQL Server 2010/04/30の1か月前の日付を求めるサンプル */
SELECT DATEADD(MONTH,-1,'2010-04-30');

現在の日付の3日前の日付を取得
/* SQL Server 現在の日付の3日前の日付を取得するサンプル */
SELECT dateadd(day,-3,getdate())

3時間後を取得する
/* SQL Server 現在の日付の3時間後を取得するサンプル */
select DATEADD(HOUR,3,'2023-05-01 11:00:00')

書式を指定する(年月日のみ表示)
/* SQL Server 書式を指定する(年月日のみ表示)サンプル */
select FORMAT(DATEADD(DAY,3,GETDATE()),'yyyy/MM/dd')
