DATE är ett reserverat nyckelord i Oracle, så jag använder kolumnnamnet your_date istället.
Om du har ett index på your_date , skulle jag använda
WHERE your_date >= TO_DATE('2010-08-03', 'YYYY-MM-DD')
AND your_date < TO_DATE('2010-08-04', 'YYYY-MM-DD')
eller BETWEEN :
WHERE your_date BETWEEN TO_DATE('2010-08-03', 'YYYY-MM-DD')
AND TO_DATE('2010-08-03 23:59:59', 'YYYY-MM-DD HH24:MI:SS')
Om det inte finns något index eller om det inte finns för många poster
WHERE TRUNC(your_date) = TO_DATE('2010-08-03', 'YYYY-MM-DD')
borde vara tillräckligt. TRUNC utan parameter tar bort timmar, minuter och sekunder från ett DATE .
Om prestandan verkligen spelar roll, överväg att sätta ett Function Based Index i den kolumnen:
CREATE INDEX trunc_date_idx ON t1(TRUNC(your_date));