Может кто-нибудь объяснить, почему нижеуказанные запросы работают по-другому? Буквально единственная разница между ними состоит в том, что
Два следующих запроса идентичны, за исключением того, что первый имеет>= в последней строке, а второй имеет =. Однако первый возвращает 129 строк, а второй возвращает 0. Сегодня 11-15-2016, поэтому я ожидал, что они вернут то же самое. Тип данных 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')
1 ответ
Решение
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