ORA-01841,(完整)年份必须介于之间



我想将表中的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<>小提琴这里

相关内容

最新更新