No Oracle, uma DATA é um ponto no tempo. Ele sempre tem um componente de tempo com precisão ao segundo.
todate('08-Jun-2010', 'dd-Mon-yyyy')
está no Oracle igual a todate('08-Jun-2010 00:00:00', 'dd-Mon-yyyy hh24:mi:ss')
. Portanto, se você selecionar linhas até essa data, não obterá nenhuma linha naquele dia com um componente de hora diferente de 00:00
. Se você deseja selecionar todas as linhas até e incluindo
08-JUN-2010
, sugiro usar:< to_date('09-06-2010', 'dd-MM-yyyy')
ou
<= to_date('08-06-2010 23:59:59', 'dd-MM-yyyy hh24:mi:ss')
Observação - Corrigi seu formato de data:você precisa usar
MON
se você quiser usar o nome abreviado do mês. Sugiro usar MM
em vez disso, para que você não receba erros quando alguém alterar as configurações do cliente (NLS_DATE_LANGUAGE
). Prefira também o uso de YYYY
em vez de YY
.