oracle 将系统日期转时间戳(毫秒)
1.情景展示
在实际开发过程中,我们经常会有两个日期时间间隔的计算,比如:计算相隔的毫秒数。
2.将日期转秒
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间:1970年01月01日08时00分00秒)起至现在的总秒数。
得到自1970年1月1日以来的秒数。
SELECT (SYSDATE - TO_DATE('1970-1-1 8', 'YYYY-MM-DD HH24')) * 86400
FROM DUAL;
说明:
用当前的时间减去1970年1月1日8时,得到的天数乘以24小时乘以3600秒,得到的结果就是系统时间戳;
这里,用8时的原因是:系统所处时区为东8区;
1天=1天*24小时*60分*60秒=86400秒。
3.将日期转毫秒
得到自1970年1月1日以来的毫秒数。
SELECT (SYSDATE - TO_DATE('1970-1-1 8', 'YYYY-MM-DD HH24')) * 86400000 +
TO_NUMBER(TO_CHAR(SYSTIMESTAMP(3), 'FF')) AS MILLIONS
FROM DUAL;
利用了DATE类型的计算结果,将其扩大1000倍之后,加上了SYSTIMESTAMP中的毫秒部分。
写在最后
哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!
相关推荐:
本文来自博客园,作者:Marydon,转载请注明原文链接:https://www.cnblogs.com/Marydon20170307/p/16360906.html