在網上查找了很多通過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
毫秒級的就更精確了。