oracle之间的日期不起作用

时间:2015-12-13 13:48:01

标签: sql oracle

select * from table where EMPNO='123'  
and TO_DATE('08-Dec-2015','DD-MON-YYYY') between  EFF_FROM_DATE  and EFF_TO_DATE ;

我有两行数据:

EFF_FROM_DATE            EFF_TO_DATE 
25-OCT-2015 15:45:19    08-DEC-2015 09:22:17
08-DEC-2015 09:22:17    31-DEC-9999 00:00:00

但此查询仅为 -

获取数据
  

25-OCT-2015 15:45:19 08-DEC-2015 09:22:17

我在这个查询中做错了什么?

2 个答案:

答案 0 :(得分:1)

您可能打算这样做:

select *
from table
where EMPNO = '123' and 
      DATE '2015-12-08' >= trunc(EFF_FROM_DATE) and
      DATE '2015-12-08' < trunc(EFF_TO_DATE) + interval '1' day;

问题是时间组件会影响比较。 “发件人”日期有一个时间组件,因此date '2015-12-08'小于'2015-12-08 10:09:22'。因此原始逻辑不起作用。

答案 1 :(得分:0)

我认为你需要截断列EFF_FROM_DATE和EFF_TO_DATE。像这样的东西:

contact[count ++] = *con;