【DATEADD関数】「日付」を加算/減算する

DATEADD関数を使用することで、
 ・日付(DATE型)
 ・日付(DATETIME型)
 ・日付(文字列型)
を加算/減算することができます!

DATEADD関数とは

「日付」を加算/減算する関数です。
「Transact-SQL(T-SQL)」に含まれています。
よってSQL Serverでのみ使用することができます。

DATEADD関数の戻り値はDATEまたはDATETIME型です。

サンプルSQL

--DATE型、DATETIME型、文字列型の変数を定義
DECLARE 
	@date DATE,
	@dateTime DATETIME,
	@dateStr VARCHAR(8)

--変数へ日時を設定
SET @date     = GETDATE()
SET @dateTime = GETDATE()
SET @dateStr = '20200701'

--DATE型の変数から取得
SELECT
	DATEADD(day,  -3,@date) AS '3日前', 
	DATEADD(day,   3,@date) AS '3日後',
	DATEADD(month,-3,@date) AS '3ヶ月前',
	DATEADD(month, 3,@date) AS '3ヶ月後',
	DATEADD(year, -3,@date) AS '3年前',
	DATEADD(year,  3,@date) AS '3年後'

--DATETIME型の変数から取得
SELECT
	DATEADD(day,  -3,@dateTime) AS '3日前', 
	DATEADD(day,   3,@dateTime) AS '3日後',
	DATEADD(month,-3,@dateTime) AS '3ヶ月前',
	DATEADD(month, 3,@dateTime) AS '3ヶ月後',
	DATEADD(year, -3,@dateTime) AS '3年前',
	DATEADD(year,  3,@dateTime) AS '3年後'

--文字列型の変数から取得
SELECT
	DATEADD(day,  -3,@dateStr) AS '3日前', 
	DATEADD(day,   3,@dateStr) AS '3日後',
	DATEADD(month,-3,@dateStr) AS '3ヶ月前',
	DATEADD(month, 3,@dateStr) AS '3ヶ月後',
	DATEADD(year, -3,@dateStr) AS '3年前',
	DATEADD(year,  3,@dateStr) AS '3年後'

サンプルSQLの実行結果

「日付」を加算/減算することができました!
※SQLを実行したのは2020/7/29です。

 

引数に「日付(文字列型)」を指定した場合、
時分秒は「00:00:00.000」になります!

タイトルとURLをコピーしました