代碼如下所示:
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', 'YYYY-MM-DD HH24')) * 86400000 + TO_NUMBER(TO_CHAR(SYSTIMESTAMP(3), 'FF')) AS MILLIONS FROM DUAL;
總結
以上所述是小編給大家介紹的oracle數據庫實現獲取時間戳的無參函數,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!
新聞熱點
疑難解答