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