我试图从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