下面两个查询完全相同,除了第一个查询的最后一行有>=,第二个查询的最后一行有=。然而,第一个返回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