SQL道場 日付時刻関数 DATEADD関数

SQL SQL
この記事は約3分で読めます。

SQLで日付の足し算をするDATEADD関数について記載しています。

対応データベース:SQL Server Access

DATEADD関数の文法

SELECT DATEADD(日付要素,日付,加算値) FROM テーブル
引数日付要素数値型
日付文字列型
加算値数値型
返値文字型 計算後の日付が戻ります。

SQLServer

引数日付要素数値型
引数日付以下のいずれかの値で解決できる式
date
datetime
datetimeoffset
datetime2
smalldatetime
time
加算値数値型
返値intYEAR は DATEPART (year、date) と同じ値を返します。
日付には、時刻部分のみが含まれる、戻り値は基準年を 1900 年にです。

DATEADD関数は指定された日付の日付要素に対して加算を行い日付を戻します。数値にマイナス値を指定した場合は日付の日付要素から減算します。

SQL Server、Accessの日付の要素

SQL Server省略形Access
yearyy,yyyyyyyy
四半期quarterqq,qq
monthmm,mm
年始からの通算日dayofyeardy,yy
daydd,dd
weekwk,wwww
曜日weekdaydww
時間hourhhh
minutemi,nn
secondss,ss
ミリ秒millisecondms

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');  
SQL Server 2010/04/30の1か月後の日付を求めるサンプル実行結果

1か月前の日付を求める

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

現在の日付の3日前の日付を取得

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

3時間後を取得する

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

書式を指定する(年月日のみ表示)

/* SQL Server 書式を指定する(年月日のみ表示)サンプル */
select FORMAT(DATEADD(DAY,3,GETDATE()),'yyyy/MM/dd')
SQL Server 書式を指定する(年月日のみ表示)サンプル実行結果
タイトルとURLをコピーしました