DATE ist ein reserviertes Schlüsselwort in Oracle, daher verwende ich den Spaltennamen your_date stattdessen.
Wenn Sie einen Index auf your_date haben , würde ich verwenden
WHERE your_date >= TO_DATE('2010-08-03', 'YYYY-MM-DD')
AND your_date < TO_DATE('2010-08-04', 'YYYY-MM-DD')
oder 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')
Wenn es keinen Index gibt oder wenn es nicht zu viele Datensätze gibt
WHERE TRUNC(your_date) = TO_DATE('2010-08-03', 'YYYY-MM-DD')
sollte ausreichen. TRUNC ohne Parameter entfernt Stunden, Minuten und Sekunden aus einem DATE .
Wenn Leistung wirklich wichtig ist, sollten Sie einen Function Based Index erstellen in dieser Spalte:
CREATE INDEX trunc_date_idx ON t1(TRUNC(your_date));