将带毫秒的纪元转换为 PL/SQL 中的日期格式

Convert epoch with milliseconds into Date format in PL/SQL

我的 table (Data_type Number(16,0)) 中有一个列,它以毫秒为单位存储纪元时间。

例如:- 1491456096759

我想写一个 select 语句将其格式化为可读格式,其中包括毫秒 'YYYY-MM-DD HH24:MI:SS.FF'。

是否有任何直接函数可用于此转换??

我已经尝试过这个选项

select to_date('19700101', 'YYYYMMDD') + ( 1 / 24 / 60 / 60 / 1000) * 1491456096759 from dual;

但无法以 'YYYY-MM-DD HH24:MI:SS.FF' 格式打印该日期

请试试这个:

SELECT TO_TIMESTAMP('1970-01-01 00:00:00.0'
                   ,'YYYY-MM-DD HH24:MI:SS.FF'
       ) + NUMTODSINTERVAL(1493963084212/1000, 'SECOND')
FROM dual;

或者如果你想 return 一个字符串:

SELECT TO_CHAR( 
         TO_TIMESTAMP('1970-01-01 00:00:00.0'
                     ,'YYYY-MM-DD HH24:MI:SS.FF'
         ) + NUMTODSINTERVAL(1493963084212/1000, 'SECOND')
        ,'YYYY-MM-DD HH24:MI:SS.FF')
FROM dual;