[英]How to take date time difference by milliseconds in Oracle
在我的要求中,我需要以毫秒為單位計算日期時間之間的差異。 它大部分時間都能正確接收,但有時會顯示負值。
在我的表中,我按如下方式存儲EXPIREDDATE
,以將 EXPIREDDATE 時間更新 2 小時
UPDATE nd_user_encode_keys
SET EXPIREDDATE = SYSDATE + ( 1 / 1440 * 120) -- here 120 means 2 hours
根據我的 SP,上面的查詢在下面的查詢之前運行。
SELECT (EXPIRYDATETIME - SYSDATE) * 24 * 60 * 60 * 1000 as EXPIRYDATETIMEINMILISECONDS
我的問題是大多數時候結果是7200000 ,但有時它會顯示負值,就像這樣-34932000 。 這個問題的原因可能是什么。 有人可以解釋一下嗎?
當你有A - B
時,結果可以是:
A = B
A > B
A < B
--> 那是你的情況為什么expirydatetime
小於sysdate
並且它是一個有效值,我不知道,但你應該因為它是你的數據庫,你將值存儲到該表中。
根據您發布的update
聲明,以及關於sysdate
不會“立即”返回與“幾分鍾前”相同的值這一事實,這取決於您何時運行該update
。
因此,我認為這是關於update
和select
之間的時間差。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.