DATE is een gereserveerd trefwoord in Oracle, dus ik gebruik kolomnaam your_date in plaats daarvan.
Als je een index hebt op your_date , ik zou gebruiken
WHERE your_date >= TO_DATE('2010-08-03', 'YYYY-MM-DD')
AND your_date < TO_DATE('2010-08-04', 'YYYY-MM-DD')
of 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')
Als er geen index is of als er niet te veel records zijn
WHERE TRUNC(your_date) = TO_DATE('2010-08-03', 'YYYY-MM-DD')
zou voldoende moeten zijn. TRUNC zonder parameter verwijdert uren, minuten en seconden van een DATE .
Als prestaties er echt toe doen, overweeg dan om een Function Based Index . te plaatsen in die kolom:
CREATE INDEX trunc_date_idx ON t1(TRUNC(your_date));