2017-05-04 96 views
0

我的表格中有一列(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://stackoverflow.com/questions/37305135/oracle-convert-unix-epoch-time-to-date – kpater87

+0

的可能的複製甲骨文轉換Unix出現時間日期](http://stackoverflow.com/questions/37305135/oracle-convert-unix-epoch-time-to-date) –

回答

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; 
相關問題