SQL道場 日付時刻関数 DATEADD関数
SQLで日付の足し算をするDATEADD関数について記載しています。
対応データベース:SQLServer Access
目次
DATEADD関数の文法
SELECT DATEADD(日付要素,日付,加算値) FROM テーブル
SELECT DATEADD(date element, date, addition value) FROM table
引数 Arguments | 日付要素 Date element | 数値型 numeric type |
日付 Date | 文字列型 String type | |
加算値 Addition value | 数値型 numeric type | |
返値 return value | 文字型 計算後の日付が戻ります。 Returns the date after character type calculation |
SQLServer
引数 Arguments | 日付要素 Date element | 数値型 numeric type |
日付 Date | 以下のいずれかの値で解決できる式 (An expression that can be resolved by one of the following values:) ・date ・datetime ・datetimeoffset ・datetime2 ・smalldatetime ・time | |
加算値 Addition value | 数値型 numeric type | |
返値 return value | int | YEAR は DATEPART (year、date) と同じ値を返します。 日付には、時刻部分のみが含まれる、戻り値は基準年を 1900 年にです。 YEAR returns the same value as DATEPART (year, date). The date contains only the time part, and the return value is 1900 for the base year. |
DATEADD関数は指定された日付の日付要素に対して加算を行い日付を戻します。数値にマイナス値を指定した場合は日付の日付要素から減算します。
SQL Server、Accessの日付の要素
SQL Server | 省略形 abbreviation | 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’のように文字列で指定します。
実行例
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')