簡體   English   中英

使用 TO_DATE 函數后比較 Oracle 中的兩個日期

[英]Comparing two dates in Oracle after using TO_DATE function

我有以下 Oracle 查詢,它將今天的日期和表中的日期字段轉換為相同的格式。 然而,當試圖比較兩者時,它們並不相等。

CAST(dstamp As Date), TO_DATE(CURRENT_DATE,'dd-MON-YY HH24.MI.SS','NLS_DATE_LANGUAGE = American')

演員表用於我表中的字段,這兩個都返回。

在此處輸入圖片說明

但是,在添加以下 where 語句時,不會返回任何行。 我不明白為什么這些不會被歸類為平等?

WHERE CAST(dstamp As Date) = TO_DATE(CURRENT_DATE,'dd-MON-YY HH24.MI.SS','NLS_DATE_LANGUAGE = American');

任何幫助表示贊賞。

如果您試圖檢查dstamp屬於當天,我建議:

where dstamp >= trunc(sysdate) and dstamp < trunc(sysdate) + 1

雖然有點冗長,但這比在被比較的列上應用日期函數更有效。 在謂詞中的列上使用函數會使查詢不可 SARGable,即它不能利用現有索引。

該日期已經是一個日期。 你不需要轉換它。 您可能需要刪除時間組件。 這是你想要的嗎?

WHERE TRUNC(dstamp) = TRUNC(sysdate)

暫無
暫無

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

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