我有一个时间戳存储在Oracle数据库的表中,例如:
01/03/12 16:13:33,000000000
我希望将Unix的Epoch转换为秒,以便在查询中返回。什么是最容易做到的?
编辑:哦,我需要时间戳精度,不能在这里依赖日期类型,因为它的精度较低。
答案 0 :(得分:1)
也许
WITH I AS (SELECT (TO_TIMESTAMP_TZ('01/03/12 16:13:33,000000000' || SESSIONTIMEZONE,
'DD/MM/RR HH24:MI:SS,FF9TZH:TZM') -
TO_TIMESTAMP_TZ('01/01/1970 00:00:00 GMT',
'DD/MM/YYYY HH24:MI:SS TZR')) AS UNIX_INTERVAL
FROM DUAL)
SELECT (EXTRACT(DAY FROM UNIX_INTERVAL) * 86400) +
(EXTRACT(HOUR FROM UNIX_INTERVAL) * 3600) +
(EXTRACT(MINUTE FROM UNIX_INTERVAL) * 60) +
(EXTRACT(SECOND FROM UNIX_INTERVAL))
FROM I
会让你开始。假定1970年1月1日00:00:00Z纪元日期。
分享并享受。