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

问题描述 投票:0回答:1

我想将表中的纪元日期转换为时间戳。

但是当我在Oracle中运行它会导致错误。

但是当我从此链接“ https://www.epochconverter.com/'运行时,这一年显示为” 2465年4月22日,拉布,格林尼治标准时间+07:00“

15630394456289509085085900这张表的开始时间

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
oracle epoch
1个回答
0
投票
时,该年份显示为“ 2465年4月22日,拉布,格林尼治标准时间+07:00”

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.628950909 UTC

db <>小提琴here

© www.soinside.com 2019 - 2024. All rights reserved.