V Oracle DATE
má vždy časovou složku. Váš klient může nebo nemusí zobrazit časovou složku, ale stále je tam, když se pokusíte provést srovnání rovnosti. Vždy také chcete porovnávat data s daty, nikoli s řetězci, které používají NLS_DATE_FORMAT
aktuální relace za to, že provádějí implicitní konverze, čímž je činí spíše křehkými. To bude zahrnovat buď datové literály ANSI nebo explicitní to_date
hovory
Můžete použít TRUNC
funkce pro zkrácení DATE
do půlnoci
SELECT *
FROM porder
WHERE trunc(odate) = date '2013-10-04'
Nebo můžete provést srovnání rozsahu (což bude efektivnější, pokud budete mít prospěch z indexu na odate
)
SELECT *
FROM porder
WHERE odate >= to_date( '04-Oct-2013', 'DD-Mon-YYYY' )
AND odate < to_date( '05-Oct-2013', 'DD-Mon-YYYY' );