有人可以解释为什么以下查询的功能不同吗?从字面上看,两者之间的唯一区别是
Can someone explain why the below queries function differently? Literally the only difference between the two is that
以下两个查询是相同的,除了第一个在最后一行有 >= 而第二个有 =。然而第一个 returns 129 行,而第二个 returns 0。今天是 11-15-2016,所以我希望它们 return 相同。 date_time的数据类型是日期。
有人可以解释为什么简单地将运算符从 >= 更改为 > 会改变结果吗?谢谢,
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 是一个时间戳(日期 + 时间),您没有恰好在午夜 (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
以下两个查询是相同的,除了第一个在最后一行有 >= 而第二个有 =。然而第一个 returns 129 行,而第二个 returns 0。今天是 11-15-2016,所以我希望它们 return 相同。 date_time的数据类型是日期。
有人可以解释为什么简单地将运算符从 >= 更改为 > 会改变结果吗?谢谢,
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 是一个时间戳(日期 + 时间),您没有恰好在午夜 (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