以毫秒为单位将历元转换为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' 格式
答
请试试这个:
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;
也许这将是有益的:http://*.com/questions/37305135/oracle-convert-unix-epoch-time-to-date – kpater87
的可能的复制甲骨文转换Unix出现时间日期](http://*.com/questions/37305135/oracle-convert-unix-epoch-time-to-date) –