我的表中有一列(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'格式打印该日期
答案 0 :(得分:1)
请试试这个:
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;