ねら~ITエンジニア雑記

やきうのお兄ちゃんが綴るOracle Databaseメインのブログ

INTERVAL DAY TO SECOND型を使って日付を演算してみる。

例として、現在時刻(SYSTIMESTAMP) の 1日12時間31分55.129秒後を算出してみる。
TO_DSINTERVALファンクションを使う。

ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'YYYY/MM/DD HH24:MI:SS.FF';
SELECT SYSTIMESTAMP AS CURRENT_TIME
     , SYSTIMESTAMP + to_dsinterval('+01 12:31:55.129') AS COMPUTED_TIME FROM DUAL;

CURRENT_TIME                 COMPUTED_TIME
---------------------------- -----------------------------
2014/02/02 22:27:36.853879   2014/02/04 10:59:31.982879000

2/2 22:27:36 の 1日12時間31分55後 は 2/4 10:59:31……あってるよな?

Oracle® Database SQL言語リファレンス
11gリリース2 (11.2)
B56299-06
INTERVAL DAY TO SECOND
http://docs.oracle.com/cd/E16338_01/server.112/b56299/sql_elements003.htm#sthref370
Oracle® Database SQL言語リファレンス
11gリリース2 (11.2)
B56299-06
TO_DSINTERVAL
http://docs.oracle.com/cd/E16338_01/server.112/b56299/functions204.htm#i1014645