Oracle計(jì)算時(shí)間差為毫秒的實(shí)現(xiàn)代碼
Oracle 中我們知道用 TO_DATE 函數(shù)可以進(jìn)行秒、分、時(shí)、天、月、年、周等時(shí)間差的計(jì)算,但是毫秒?yún)s不好計(jì)算,TO_DATE 函數(shù)只能精確到秒,毫秒則只能用 TO_TIMESTAMP 函數(shù),但是這個(gè)函數(shù)不像 TO_DATE 這樣直接減出來(lái)的差值就是 NUMBER 類型,如果用 TO_NUMBER 函數(shù)轉(zhuǎn)換也會(huì)報(bào)錯(cuò)。
這里我是用分隔字符串單獨(dú)計(jì)算毫秒部分,如果有更好的辦法,請(qǐng)大家分享一下,下面是查詢時(shí)間差為毫秒的模板(字段1 – 字段2):
SELECT
(
(
(TO_TIMESTAMP(字段1, 'YYYY-MM-DD HH24:MI:SS.FF9') + 0)
-
(TO_TIMESTAMP(字段2, 'YYYY-MM-DD HH24:MI:SS.FF9') + 0)
) * 24 * 60 * 60
+
TO_NUMBER
(
'0' ||
(
TO_NUMBER(SUBSTR(字段1, INSTR(字段1, '.')))
-
TO_NUMBER(SUBSTR(字段2, INSTR(字段2, '.')))
)
)
) * 1000
FROM 表名
這里是相差的毫秒數(shù),如果需要顯示小數(shù)的秒請(qǐng)刪除 “( ) * 1000”這部分,下面是個(gè)測(cè)試代碼,直接運(yùn)行:
SELECT
(
(
(TO_TIMESTAMP('2016-04-13 17:13:50.998', 'YYYY-MM-DD HH24:MI:SS.FF9') + 0)
-
(TO_TIMESTAMP('2016-04-13 17:13:47.235', 'YYYY-MM-DD HH24:MI:SS.FF9') + 0)
) * 24 * 60 * 60
+
TO_NUMBER
(
'0' ||
(
TO_NUMBER(SUBSTR('2016-04-13 17:13:50.998', INSTR('2016-04-13 17:13:50.998', '.')))
-
TO_NUMBER(SUBSTR('2016-04-13 17:13:47.235', INSTR('2016-04-13 17:13:50.235', '.')))
)
)
) * 1000
FROM DUAL
結(jié)果為:3763
相關(guān)文章
Oracle數(shù)據(jù)庫(kù)數(shù)據(jù)丟失恢復(fù)的幾種方法總結(jié)
相信大家無(wú)論是開(kāi)發(fā)、測(cè)試還是運(yùn)維過(guò)程中,都可能會(huì)因?yàn)檎`操作、連錯(cuò)數(shù)據(jù)庫(kù)、用錯(cuò)用戶、語(yǔ)句條件有誤等原因,導(dǎo)致錯(cuò)誤刪除、錯(cuò)誤更新等問(wèn)題。當(dāng)你捶胸頓足或嚇得腿軟時(shí),肯定希望有辦法來(lái)恢復(fù)這些數(shù)據(jù)。oracle就提供了一些強(qiáng)大的方法或機(jī)制,可以幫到有需要的你。2016-12-12
在Tomcat服務(wù)器下使用連接池連接Oracle數(shù)據(jù)庫(kù)
本文為大家介紹下在Tomcat服務(wù)器下使用連接池來(lái)連接數(shù)據(jù)庫(kù)的操作,下面有個(gè)不錯(cuò)的示例,大家可以參考下2014-01-01
Oracle 管道 解決Exp/Imp大量數(shù)據(jù)處理問(wèn)題
Oracle的exp/imp是許多用戶經(jīng)常使用的兩個(gè)工具. 它們常被用來(lái)做數(shù)據(jù)庫(kù)的邏輯備份,數(shù)據(jù)庫(kù)重組和數(shù)據(jù)轉(zhuǎn)移等工作.2009-07-07
DBA 在Linux下安裝Oracle Database11g數(shù)據(jù)庫(kù)圖文教程
正在學(xué)習(xí)Oracle DBA的知識(shí),所以安裝oracle 11個(gè)的數(shù)據(jù)庫(kù)用以做測(cè)試,如Clone, RMAN, Stream等2014-08-08
Oracle9i數(shù)據(jù)庫(kù)異常關(guān)閉后的啟動(dòng)
Oracle9i數(shù)據(jù)庫(kù)異常關(guān)閉后的啟動(dòng)...2007-03-03
oracle日期時(shí)間型timestamp的深入理解
本篇文章是對(duì)oracle中日期時(shí)間型timestamp函數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
Oracle數(shù)據(jù)庫(kù)密碼文件的使用與維護(hù)
Oracle數(shù)據(jù)庫(kù)密碼文件的使用與維護(hù)...2007-03-03
Oracle用戶自定義異常實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了Oracle用戶自定義異常實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09

