日付関数

[Oracle] 日付関数 日付の加算・減算SQL(ADD_MONTHS)

日付型の加減算

日の加算・減算

日の加算・減算は日付型のデータに対しそのまま算術演算子で行います。

SELECT SYSDATE 演算子 加減値 FROM DUAL;

それではサンプルを見てみましょう。

現在のシステム日付(11/13)の1日後を取得するSQLです。

上記を実行し、抽出された結果がこちらです。

SYSDATE + 1
2019/11/14 10:01:13


実行時点のシステム日付の1日後の日付が取得できました。

なお、昨日以前を取得するには、演算子 -(マイナス)を指定してください。

 

時の加算・減算

時の加算・減算も、日同様そのまま算術演算子で行います。
1日は24時間ですので、1/24を加減算します。

それではサンプルを見てみましょう。

現在のシステム日付(11/13 10:07:10)の1時間後を取得するSQLです。

上記を実行し、抽出された結果がこちらです。

SYSDATE + 1/24
2019/11/13 11:07:10


実行時点のシステム日付の1時間後の日付が取得できました。

 

分の加算・減算

分の場合は、1日は1440分ですので、1/1440を加減算します。

それではサンプルを見てみましょう。

現在のシステム日付(11/13 10:09:20)の10分後を取得するSQLです。

上記を実行し、抽出された結果がこちらです。

SYSDATE + 10/1440
2019/11/13 10:19:20


実行時点のシステム日付の10分後の日付が取得できました。

style=”display: block; text-align: center;” data-ad-layout=”in-article” data-ad-format=”fluid” data-ad-client=”ca-pub-4388868111635354″ data-ad-slot=”9920341333″>

 

秒の加算・減算

秒の場合は、1日は86400秒ですので、1/86400を加減算します。

それではサンプルを見てみましょう。

現在のシステム日付(11/13 10:10:20)の30秒後を取得するSQLです。

上記を実行し、抽出された結果がこちらです。

SYSDATE + 30/86400
2019/11/13 10:10:50


実行時点のシステム日付の30秒後の日付が取得できました。

月の加算・減算

月の場合は、ADD_MONTHS関数を使用します。
日~秒の計算と方法が異なりますが、それは月の場合は月によって日数が異なるためです。
ADD_MONTHS関数を使用すると、例えば1/31の1ヶ月後は2/28と考慮して算出してくれます。

SELECT ADD_MONTHS(SYSDATE, 加減値) FROM DUAL;

それではサンプルを見てみましょう。

現在のシステム日付(11/13 10:12:30)の3か月後を取得するSQLです。

上記を実行し、抽出された結果がこちらです。

ADD_MONTHS(SYSDATE, 3)
2020/02/13 10:12:30


実行時点のシステム日付の3ヶ月後の日付が取得できました。

なお、年の加算も同様に、ADD_MONTHS関数の第2引数に12を指定する等して行うようにしましょう。

style=”display: block; text-align: center;” data-ad-layout=”in-article” data-ad-format=”fluid” data-ad-client=”ca-pub-4388868111635354″ data-ad-slot=”9920341333″>

以上が、日付型の加算・減算方法です。
それぞれ算出方法が異なり覚えるのが大変ですが、ぜひ参考にしてみてください。