DATE
je vyhrazené klíčové slovo v Oracle, takže používám název sloupce your_date
místo toho.
Pokud máte index na your_date
, použil bych
WHERE your_date >= TO_DATE('2010-08-03', 'YYYY-MM-DD')
AND your_date < TO_DATE('2010-08-04', 'YYYY-MM-DD')
nebo 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')
Pokud neexistuje žádný index nebo pokud není příliš mnoho záznamů
WHERE TRUNC(your_date) = TO_DATE('2010-08-03', 'YYYY-MM-DD')
by měla být dostatečná. TRUNC
bez parametru odstraní hodiny, minuty a sekundy z DATE
.
Pokud na výkonu opravdu záleží, zvažte umístění Function Based Index
v tomto sloupci:
CREATE INDEX trunc_date_idx ON t1(TRUNC(your_date));