日付型の加減算
日の加算・減算
日の加算・減算は日付型のデータに対しそのまま算術演算子で行います。
SELECT SYSDATE 演算子 加減値 FROM DUAL;
それではサンプルを見てみましょう。
現在のシステム日付(11/13)の1日後を取得するSQLです。
1 |
SELECT SYSDATE + 1 FROM DUAL; |
上記を実行し、抽出された結果がこちらです。
SYSDATE + 1 |
---|
2019/11/14 10:01:13 |
実行時点のシステム日付の1日後の日付が取得できました。
なお、昨日以前を取得するには、演算子 -(マイナス)を指定してください。
時の加算・減算
時の加算・減算も、日同様そのまま算術演算子で行います。
1日は24時間ですので、1/24を加減算します。
それではサンプルを見てみましょう。
現在のシステム日付(11/13 10:07:10)の1時間後を取得するSQLです。
1 |
SELECT SYSDATE + 1/24 FROM DUAL; |
上記を実行し、抽出された結果がこちらです。
SYSDATE + 1/24 |
---|
2019/11/13 11:07:10 |
実行時点のシステム日付の1時間後の日付が取得できました。
分の加算・減算
分の場合は、1日は1440分ですので、1/1440を加減算します。
それではサンプルを見てみましょう。
現在のシステム日付(11/13 10:09:20)の10分後を取得するSQLです。
1 |
SELECT SYSDATE + 10/1440 FROM DUAL; |
上記を実行し、抽出された結果がこちらです。
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です。
1 |
SELECT SYSDATE + 30/86400 FROM DUAL; |
上記を実行し、抽出された結果がこちらです。
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です。
1 |
SELECT ADD_MONTHS(SYSDATE, 3) FROM DUAL; |
上記を実行し、抽出された結果がこちらです。
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″>
以上が、日付型の加算・減算方法です。
それぞれ算出方法が異なり覚えるのが大変ですが、ぜひ参考にしてみてください。