我試圖從ORACLE表中檢索其中一列中有昨天日期的ORACLE表中的記錄。我每天都有一份工作,每天只檢索昨天的記錄。前一天的搜索記錄
注意**列insert_date的類型是date
的這是兩個SQL語句我到目前爲止有:
SELECT distinct column1
FROM table1
WHERE flag = 'N'
AND insert_date BETWEEN TRUNC(CURRENT_DATE-1) AND TRUNC(CURRENT_DATE)
AND ipaddress IS NOT NULL
AND ipaddress <> '0.0.0.0';
和
SELECT distinct column1
FROM table1
WHERE flag = 'N'
AND insert_date
BETWEEN To_Timestamp(CONCAT (to_char(CURRENT_DATE-1),' 12:00:00 AM'))
AND To_Timestamp(Concat (to_char(CURRENT_DATE-1),' 11:59:59 PM'))
AND ipaddress IS NOT NULL
AND ipaddress <> '0.0.0.0';
似乎因爲這兩個SQL語句產生相同的輸出。但是,我不是ORACLE的專家,所以我想問問社區是否有任何我不知道的「陷阱」。
看起來像是你佔了'gotcha'= - 這是你希望這一天在午夜開始 - 不僅僅是一天前(包括分鐘) – Randy
我希望能夠使用第一個sql,因爲執行速度比較快到第二個sql。我假設這是因爲在insert_date列 –
上有一個範圍分區只是在另一部分的想法,而不是檢查ipaddress兩次除非nvl(ipaddress,'0.0.0.0')<>'0.0.0.0'除非當然這個列有索引問題。 – Diver