1. 程式人生 > >oracle 時間戳生成語句(秒級+毫秒級)

oracle 時間戳生成語句(秒級+毫秒級)

  在網上查找了很多通過Oracle生成時間戳的方法,大部分都是比較複雜,以下這個方法應該是比較簡單,而且能實現秒級及毫秒級的時間戳,推薦一下:

  • 秒級時間戳
SQL> SELECT (SYSDATE - TO_DATE('1970-1-1 8', 'YYYY-MM-DD HH24')) * 86400 FROM DUAL;

(SYSDATE-TO_DATE('1970-1-18','YYYY-MM-DDHH24'))*86400
-----------------------------------------------------
1167040878

  用當前的時間減去1970年1月1日8時,得到的天數乘以24小時乘以3600秒,得到的結果就是系統時間戳。這裡用8時的原因時系統所處時區為東8區。

  • 毫秒級時間戳
SQL> SELECT (SYSDATE - TO_DATE('1970-1-1 8', 'YYYY-MM-DD HH24')) * 86400000 + TO_NUMBER(TO_CHAR(SYSTIMESTAMP(3), 'FF')) AS MILLIONS FROM DUAL;

MILLIONS
--------------
1167041794765

  毫秒級的就更精確了。