我想将表中的epoch日期转换为时间戳。
但当我在Oracle中运行它时,它会导致一个错误。
但当我从这个链接运行时,年份显示为"拉布,2465年4月22日普库尔15.35.06.289 GMT+07:00"https://www.epochconverter.com/'
15630394456289590085900这是表中的历元时间
select to_char(
cast(
to_date('01/01/1970 00:00:00','DD/MM/YYYY HH24:MI:SS')+15630394456289509085900/86400
as timestamp with local time zone)
,'YYYY-MM-DD HH24:MI:SS')
from dual
Epoch时间在UTC时区。只需使用TIMESTAMP
文字并添加正确的秒数:
SELECT TIMESTAMP '1970-01-01 00:00:00 UTC'
+ NUMTODSINTERVAL(15630394456289509085900 / 86400e12, 'DAY') AS epoch_time_12,
TIMESTAMP '1970-01-01 00:00:00 UTC'
+ NUMTODSINTERVAL(15630394456289509085900 / 86400e13, 'DAY') AS epoch_time_13
FROM DUAL
哪个输出:
EPOCH_TIME_12|EPOCH_TIME_13:-------------------------------|:--------------------------------2465-04-22 08:14:16.289509086 UTC | 2019-07-13 17:37:25.689950909 UTC
db<>小提琴这里