INTERVAL DAY TO SECOND型を秒数に変換してみる。
さっきのは前フリで、こっちが本来やりたかったこと。
EXTRACTファンクションを使いまする。
例として、1日12時間31分55.129秒の INTERVAL DAY TO SECOND型を秒数に変換してみる。
SELECT EXTRACT(DAY FROM to_dsinterval('+01 12:31:55.129')) AS DAY , EXTRACT(HOUR FROM to_dsinterval('+01 12:31:55.129')) AS HOUR , EXTRACT(MINUTE FROM to_dsinterval('+01 12:31:55.129')) AS MINUTE , EXTRACT(SECOND FROM to_dsinterval('+01 12:31:55.129')) AS SECOND , EXTRACT(DAY FROM to_dsinterval('+01 12:31:55.129')) * 86400 + EXTRACT(HOUR FROM to_dsinterval('+01 12:31:55.129')) * 3600 + EXTRACT(MINUTE FROM to_dsinterval('+01 12:31:55.129')) * 60 + EXTRACT(SECOND FROM to_dsinterval('+01 12:31:55.129')) AS TOTAL_SECOND FROM DUAL; DAY HOUR MINUTE SECOND TOTAL_SECOND ---------- ---------- ---------- ---------- ------------ 1 12 31 55.129 131515.129
1日12時間31分55.129秒 は 秒数に変換すると 131515.129秒。。。合ってるっぽい!
Oracle® Database SQL言語リファレンス 11gリリース2 (11.2) B56299-06 EXTRACT(日時) http://docs.oracle.com/cd/E16338_01/server.112/b56299/functions059.htm#i1017161