将带毫秒的纪元转换为 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;
我的 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;