W Oracle termin DATA jest punktem w czasie. Zawsze ma komponent czasu z dokładnością do sekundy. todate('08-Jun-2010', 'dd-Mon-yyyy')
jest w Oracle taki sam jak todate('08-Jun-2010 00:00:00', 'dd-Mon-yyyy hh24:mi:ss')
. Jeśli więc wybierzesz wiersze do tej daty, nie otrzymasz żadnego wiersza tego dnia z komponentem czasu równym 00:00
.
Jeśli chcesz wybrać wszystkie wiersze włącznie 08-JUN-2010
, proponuję przy użyciu:
< to_date('09-06-2010', 'dd-MM-yyyy')
lub
<= to_date('08-06-2010 23:59:59', 'dd-MM-yyyy hh24:mi:ss')
Uwaga - poprawiłam swój format daty: trzeba używać numeru MON
, jeśli chcesz użyć nazwy skróconego miesiąca. Proponuję zamiast tego użyć MM
, aby uniknąć błędu, gdy ktoś zmieni ustawienia klienta (NLS_DATE_LANGUAGE
). Również preferuj użycie YYYY
zamiast YY
.
myślę Nazwa skrócona formacie miesiąc jest „MON” nie „MMM” – Sujee
+1 do przyczyny zastosowania „skrócona nazwa miesiąca” format „MM” zamiast. – Sujee
@Sujee: dzięki, zaktualizowałem swoją odpowiedź –