我正在从数据库中查询:
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