0

我正在从数据库中查询:

select * from database where id = 12345

我有几天等于 2010 年 3 月 4 日上午 9:16:59

但如果我添加和 date = to_date('03/04/2010','DD/MM/YYYY')

给我

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

我一无所有地复出。

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

4

2 回答 2

3

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

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

WHERE id = 12345
  AND trunc(date) = to_date('03/04/2010', 'DD/MM/YYYY')
于 2011-08-03T23:13:17.160 回答
1
 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

于 2011-08-03T22:30:54.590 回答