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));