1. 程式人生 > 資料庫 >oracle資料庫實現獲取時間戳的無參函式

oracle資料庫實現獲取時間戳的無參函式

程式碼如下所示:

CREATE OR REPLACE FUNCTION GETMSTIMESTAMP
 RETURN NUMBER
 AS
 MSTIMESTAMP NUMBER;
 BEGIN
 SELECT (SYSDATE-TO_DATE('1970-1-18','YYYY-MM-DD HH24')) * 86400000 + TO_NUMBER(TO_CHAR(SYSTIMESTAMP(3),'FF')) INTO MSTIMESTAMP FROM DUAL;
 RETURN MSTIMESTAMP;
 END;

之後再mapper檔案或者pl/sql等工具中用select GETMSTIMESTAMP() as timestamp from dual;即可使用

獲得秒級時間戳:

SELECT (SYSDATE - TO_DATE('1970-1-1 8','YYYY-MM-DD HH24')) * 86400 FROM DUAL;
(SYSDATE-TO_DATE('1970-1-1 8','YYYY-MM-DDHH24'))*86400
-----------------------------------------------------
1167040878

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

毫秒級時間戳:

SELECT (SYSDATE - TO_DATE('1970-1-1 8','FF')) AS MILLIONS FROM DUAL;

總結

以上所述是小編給大家介紹的oracle資料庫實現獲取時間戳的無參函式,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!