В Oracle ДАТА е момент във времето. Винаги има времеви компонент с точност до секундата. todate('08-Jun-2010', 'dd-Mon-yyyy')
е в Oracle същото като todate('08-Jun-2010 00:00:00', 'dd-Mon-yyyy hh24:mi:ss')
. Така че, ако изберете редове до тази дата, няма да получите нито един ред за този ден с времеви компонент, който не е равен на 00:00
.
Ако искате да изберете всички редове до и включително 08-JUN-2010
, предлагам да използвате:
< 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
.