为什么结果不包括' 2013-10-14'
select *
from table t
where t.f_date between to_date('2013-10-20', 'yyyy-mm-dd') and
to_date('2013-10-14', 'yyyy-mm-dd')
答案 0 :(得分:6)
d.f_date是否包含时间组件?如果是,则between
将返回的唯一记录将是那些时间正好 00:00:00的记录。 2013-10-14所有其他人都会更大。
比较日期时,假定没有时间组件的日期具有00:00:00时间组件
答案 1 :(得分:1)
这可能是由其他答案中提到的时间组件问题引起的,但是您还需要更改您的介于最早的日期之前,否则它将永远不会返回任何内容。
e.g。
SELECT *
FROM dual
WHERE SYSDATE BETWEEN SYSDATE AND SYSDATE + 1;
将返回1条记录,但
SELECT *
FROM dual
WHERE SYSDATE BETWEEN SYSDATE + 1 AND SYSDATE;
不会。