Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Aus Tabelle auswählen, indem nur Datum ohne Uhrzeit bekannt ist (ORACLE)

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