在PL/SQL(oracle)中按天查询



我正在从数据库中查询:

select * from database where id = 12345

我有几天的时间,它等于2010年3月4日上午9:16:59

但如果我加上日期=截止日期('03/04/2010','DD/MM/YYYY'(

给我

select * from database where id = 12345
and date = to_date('03/04/2010','DD/MM/YYYY') 

我一无所有地复出了。

有指针吗?顺便说一句,我知道有一个时间,但我不知道如何仅仅根据日期进行比较!!!

这是因为当您创建日期时,您隐式地将时间设置为0:00:00,并且由于0:00:00不等于9:16:59,您将不会返回日期。

要告诉Oracle忽略时间部分,只需执行以下操作:

WHERE id = 12345
  AND trunc(date) = to_date('03/04/2010', 'DD/MM/YYYY')
 WHERE id = 12345
   AND date >= TO_DATE('03/04/2010', 'DD/MM/YYYY')
   AND date <  TO_DATE('03/04/2010', 'DD/MM/YYYY') + INTERVAL '1' DAY

http://use-the-index-luke.com/sql/where-clause/obfuscation/dates

最新更新