I Oracle är ett DATUM en tidpunkt. Den har alltid en tidskomponent med en precision till tvåan. todate('08-Jun-2010', 'dd-Mon-yyyy')
är i Oracle detsamma som todate('08-Jun-2010 00:00:00', 'dd-Mon-yyyy hh24:mi:ss')
. Så om du väljer rader fram till det datumet får du ingen rad den dagen med en tidskomponent som inte är lika med 00:00
.
Om du vill välja alla rader till och med 08-JUN-2010
, jag skulle föreslå att du använder:
< to_date('09-06-2010', 'dd-MM-yyyy')
eller
<= to_date('08-06-2010 23:59:59', 'dd-MM-yyyy hh24:mi:ss')
Obs - Jag korrigerade ditt datumformat:du måste använda MON
om du vill använda det förkortade månadsnamnet. Jag skulle föreslå att du använder MM
istället så att du inte får felmeddelanden när någon ändrar klientinställningarna (NLS_DATE_LANGUAGE
). Föredrar också användningen av YYYY
istället för YY
.