Может кто-нибудь объяснить, почему нижеуказанные запросы работают по-другому? Буквально единственная разница между ними состоит в том, что

Два следующих запроса идентичны, за исключением того, что первый имеет>= в последней строке, а второй имеет =. Однако первый возвращает 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
Другие вопросы по тегам