No Oracle, um
DATE sempre tem um componente de tempo. Seu cliente pode ou não exibir o componente de tempo, mas ele ainda está lá quando você tenta fazer uma comparação de igualdade. Você também sempre quer comparar datas com datas em vez de strings que usam o NLS_DATE_FORMAT da sessão atual por fazer conversões implícitas, tornando-as bastante frágeis. Isso envolverá literais de data ANSI ou to_date explícito chamadas Você pode usar o
TRUNC função para truncar o DATE à meia-noite SELECT *
FROM porder
WHERE trunc(odate) = date '2013-10-04'
Ou você pode fazer uma comparação de intervalo (o que será mais eficiente se você puder se beneficiar de um índice em
odate ) SELECT *
FROM porder
WHERE odate >= to_date( '04-Oct-2013', 'DD-Mon-YYYY' )
AND odate < to_date( '05-Oct-2013', 'DD-Mon-YYYY' );