記事の最後にもっと直感的で分かりやすい書き方の例もあります。
n日
単純に+または-でOK。
現在時刻から1日後を取得
SYSDATE + 1
『2023/08/13 17:13:09』に実行した場合、上記の結果は『2023/08/14 17:13:09』。
計算対象の値(カラム)が日付型になっていなければ例外
例えば下記は『ORA-01722: 数値が無効です。』の例外になります。
'2023/01/01 00:00:00' + 1
n時間
1時間後は『1日後』の応用。
1日は24時間だから加算減算する値を÷24。
現在時刻から1時間後を取得
SYSDATE + (1/24)
n分
1440 = 24時間×60分。
1日は1440分。
現在時刻から1分後を取得
SYSDATE + (1/1440)
n秒
86400 = 24時間×60分×60秒。
1日は86400秒。
現在時刻から1秒後を取得
SYSDATE + (1/86400)
もっと分かりやすい書き方
わざわざ秒に変換しなくても〇時間後や〇分後などを取得できます。
コメントで教えてもらいました。感謝です!
SELECT
SYSDATE,
SYSDATE - INTERVAL '1' HOUR FROM DUAL
-- 1時間前
SELECT
SYSDATE,
SYSDATE + INTERVAL '2' MINUTE FROM DUAL
-- 2分後
SELECT
SYSDATE,
SYSDATE - INTERVAL '3' SECOND FROM DUAL
-- 3秒前
参考サイトさん
バージョン
Oracle Database 11g Release 11.2.0.1.0 - 64bit Production