簡體   English   中英

如何在Oracle中以毫秒為單位獲取日期時差

[英]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時,結果可以是:

  • 0,如果A = B
  • 一個正數,如果A > B
  • 一個負數,如果A < B --> 那是你的情況

為什么expirydatetime小於sysdate並且它是一個有效值,我不知道,但你應該因為它是你的數據庫,你將值存儲到該表中。

根據您發布的update聲明,以及關於sysdate不會“立即”返回與“幾分鍾前”相同的值這一事實,這取決於您何時運行該update

因此,我認為這是關於updateselect之間的時間差。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM