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 .