作業ノート

様々なまとめ、雑感など

OracleのSQLでUNIX timeを日付に変換する

UNIX timeをOracle DBに保存している古いシステムがある。 システム改修などで確認のためにSQLを使ってそれを持つデータを取得することがあるのだが、秒数ではわかりにくい。

そこで、SQLでUNIX timeを日付に変換する方法。

select to_date('1970-01-01','YYYY-MM-DD') + numtodsinterval(unix_timestamp +9*60*60, 'SECOND') as datetime from foo;

unix_timestampは、調べたいUNIX Timeのカラム。

UNIX Timeは、UTCの1970-01-01 00:00:00からの秒数であり、調べたいUNIX Timeに対して+9時間(9*60*60秒)することで、JSTに変換して表示する。

参考