【SQL Server】DATEADD で日付を加算・減算する

日付を加算・減算する

日付の加算・減算

SQLServerで日付を加算・減算するには2種類の方法があります。

  • DATEADDを使う
  • プラス(+)マイナス(-)する

日付を足す・引くには「DATEADD」が便利です。「DATEADD」を使うパターンと日付型に直接プラス・マイナスするパターンを紹介します。

DATEADDの構文

DATEADD(型, 加算数, 対象日時)

指定された「型」の加算数で対象日時を加算・減算します。「型」の一覧はこちらです。

意味
year
month
day
hour
minute
second

参照:DATEADD (Transact-SQL)

例1. 1日足すパターン(DATEADDを使う)

--日時を取得する
SELECT GETDATE();
[結果] 2022/11/01 15:05:15

--1日足す
SELECT DATEADD(day, 1, GETDATE());
[結果] 2022/11/02 15:05:15

1日足す場合は、「DATEADD」の第一引数に「day」を指定し、第二引数に「1」を指定し、第三引数に「元の日付」を指定します。ここでは「GETDATE」で取得した現在の日付に「DATEADD」を使って1日を足すことができました。

例2. 1日足すパターン(プラスを使う)

--日時を取得する
SELECT GETDATE();
[結果] 2022/11/01 15:05:15

--1日足す
SELECT GETDATE()+ 1;
[結果] 2022/11/02 15:05:15

「DATEADD」以外に日付型に「+ 1」としても加算することができます。ここでは現在日の翌日を取得しました。

例3.1日引くパターン(DATEADDを使う)

--日時を取得する
SELECT GETDATE();
[結果] 2022/11/01 15:05:15

--1日引く
SELECT DATEADD(day, -1, GETDATE());
[結果] 2022/10/31 15:05:15

DATEADDを使って日付を減算することもできます。第二引数を「マイナスの値」にすれば日付を引き算することができます。

例2.1日引くパターン(マイナスを使う)

--日時を取得する
SELECT GETDATE();
[結果] 2022/11/01 15:05:15

--1日引く
SELECT GETDATE()- 1;
[結果] 2022/10/31 15:05:15

直接マイナスすることで日付を減算することもできます。1日引く場合は、日付型に「-1」とします。ここでは現在日の前日を取得しました。

以上、SQLServerで日付を加算・減算する方法でした。

コメント