I Oracle er en DATE har altid en tidskomponent. Din klient viser måske eller ikke viser tidskomponenten, men den er der stadig, når du forsøger at lave en lighedssammenligning. Du vil også altid sammenligne datoer med datoer i stedet for strenge, der bruger den aktuelle sessions NLS_DATE_FORMAT for at udføre implicitte konverteringer og dermed gøre dem ret skrøbelige. Det vil involvere enten ANSI-dato-literal eller eksplicit to_date opkald
Du kan bruge TRUNC funktion til at afkorte DATE til midnat
SELECT *
FROM porder
WHERE trunc(odate) = date '2013-10-04'
Eller du kan lave en intervalsammenligning (som vil være mere effektiv, hvis du kan drage fordel af et indeks på odate )
SELECT *
FROM porder
WHERE odate >= to_date( '04-Oct-2013', 'DD-Mon-YYYY' )
AND odate < to_date( '05-Oct-2013', 'DD-Mon-YYYY' );