sql >> Databáze >  >> RDS >> Oracle

Vybírejte z tabulky tím, že znáte pouze datum bez času (ORACLE)

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


  1. Volání funkce PostgreSQL

  2. Jak dosáhnout konce dne?

  3. Jak FIELD() funguje v MariaDB

  4. Vysoká dostupnost databáze pro Camunda BPM pomocí MySQL nebo MariaDB Galera Cluster