以毫秒为单位将历元转换为PL/SQL中的日期格式

问题描述:

我的表格中有一列(Data_type Number(16,0)),它以毫秒为单位存储历元时间。以毫秒为单位将历元转换为PL/SQL中的日期格式

如: - 1491456096759

我想写一个查询语句来格式化成可读的格式,其中包括毫秒这个 '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' 格式

+0

也许这将是有益的:http://*.com/questions/37305135/oracle-convert-unix-epoch-time-to-date – kpater87

+0

的可能的复制甲骨文转换Unix出现时间日期](http://*.com/questions/37305135/oracle-convert-unix-epoch-time-to-date) –

请试试这个:

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

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

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;