В Oracle DATE - это момент времени.Он всегда имеет компонент времени с точностью до секунды.todate('08-Jun-2010', 'dd-Mon-yyyy')
в Oracle совпадает с todate('08-Jun-2010 00:00:00', 'dd-Mon-yyyy hh24:mi:ss')
.Поэтому, если вы выберете строки до этой даты, вы не получите ни одной строки в тот день с компонентом времени, не равным 00:00
.
Если вы хотите выбрать все строки до * 1006 включительно*, Я бы предложил использовать:
< to_date('09-06-2010', 'dd-MM-yyyy')
или
<= to_date('08-06-2010 23:59:59', 'dd-MM-yyyy hh24:mi:ss')
Примечание - Я исправил ваш формат даты: вам нужно использовать MON
, если хотитеиспользовать сокращенное название месяца.Вместо этого я бы предложил использовать MM
, чтобы вы не получили ошибку при изменении настроек клиента (NLS_DATE_LANGUAGE
).Также предпочтительнее использовать YYYY
вместо YY
.