有人能解释为什么下面的查询功能不同吗?从字面上看,两者之间唯一的区别是



下面两个查询完全相同,除了第一个查询的最后一行有>=,第二个查询的最后一行有=。然而,第一个返回129行,而第二个返回0。今天是2016年11月15日,所以我希望他们也能回来。date_time的数据类型为date。

有人能解释一下为什么简单地将操作符从>=更改为>会改变结果吗?谢谢你,

select orderid
    from order_log
    where order_version = 0
    and description = 'Order Complete'
    and date_time **>=** to_date('11-15-2016', 'MM-DD-YYYY')
select orderid
    from order_log
    where order_version = 0
    and description = 'Order Complete'
    and date_time **=** to_date('11-15-2016', 'MM-DD-YYYY')

date_time是一个时间戳(date + time),并且您没有恰好发生在午夜(2016-11-15 00:00:00)的事件。


select          sysdate
               ,case when sysdate = date '2016-11-16' then 'Y' else 'N' end as is_equal
 from           dual

SYSDATE             IS_EQUAL
2016-11-16 00:23:37 N

最新更新