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