DATE
jest zarezerwowanym słowem kluczowym w Oracle, więc używam nazwy kolumny your_date
zamiast tego.
Jeśli masz indeks na your_date
, użyłbym
WHERE your_date >= TO_DATE('2010-08-03', 'YYYY-MM-DD')
AND your_date < TO_DATE('2010-08-04', 'YYYY-MM-DD')
lub 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')
Jeśli nie ma indeksu lub jeśli nie ma zbyt wielu rekordów
WHERE TRUNC(your_date) = TO_DATE('2010-08-03', 'YYYY-MM-DD')
powinno wystarczyć. TRUNC
bez parametru usuwa godziny, minuty i sekundy z DATE
.
Jeśli wydajność naprawdę ma znaczenie, rozważ umieszczenie Function Based Index
w tej kolumnie:
CREATE INDEX trunc_date_idx ON t1(TRUNC(your_date));