甲骨文日期介于 和 之间



为什么结果不包括'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')

d.f_date是否包含时间部分?如果是这样,between将返回的唯一记录将是时间正好为 00:00:00 的记录。所有其他将大于2013-10-14。

比较日期时,假定没有时间部分的日期具有 00:00:00 时间部分

这可能是由其他答案中提到的时间组件问题引起的,但是您还需要将 between 更改为最早的日期,否则它将永远不会返回任何内容。

例如

SELECT *
FROM dual
WHERE SYSDATE BETWEEN SYSDATE AND SYSDATE + 1;

将返回 1 条记录,但

SELECT *
FROM dual
WHERE SYSDATE BETWEEN SYSDATE + 1 AND SYSDATE;

不会。

最新更新