In Oracle una DATA è un punto nel tempo. Ha sempre una componente temporale con una precisione al secondo. todate('08-Jun-2010', 'dd-Mon-yyyy')
è in Oracle uguale a todate('08-Jun-2010 00:00:00', 'dd-Mon-yyyy hh24:mi:ss')
. Quindi se selezioni le righe fino a quella data non otterrai nessuna riga in quel giorno con una componente temporale diversa da 00:00
.
Se vuoi selezionare tutte le righe fino a 08-JUN-2010
incluso , suggerirei di utilizzare:
< to_date('09-06-2010', 'dd-MM-yyyy')
o
<= to_date('08-06-2010 23:59:59', 'dd-MM-yyyy hh24:mi:ss')
Nota - Ho corretto il formato della tua data:devi usare MON
se si desidera utilizzare il nome abbreviato del mese. Suggerirei di usare MM
invece, in modo da non ricevere errori quando qualcuno modifica le impostazioni del client (NLS_DATE_LANGUAGE
). Preferisci anche l'uso di YYYY
invece di YY
.