DATE è una parola chiave riservata in Oracle, quindi sto usando column-name your_date invece.
Se hai un indice su your_date , io userei
WHERE your_date >= TO_DATE('2010-08-03', 'YYYY-MM-DD')
AND your_date < TO_DATE('2010-08-04', 'YYYY-MM-DD')
o 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')
Se non c'è un indice o se non ci sono troppi record
WHERE TRUNC(your_date) = TO_DATE('2010-08-03', 'YYYY-MM-DD')
dovrebbe essere sufficiente. TRUNC senza parametro rimuove ore, minuti e secondi da un DATE .
Se le prestazioni sono davvero importanti, valuta la possibilità di inserire un Function Based Index su quella colonna:
CREATE INDEX trunc_date_idx ON t1(TRUNC(your_date));