sql >> Base de Datos >  >> RDS >> Oracle

Seleccione de la tabla conociendo solo la fecha sin la hora (ORACLE)

DATE es una palabra clave reservada en Oracle, por lo que estoy usando el nombre de columna your_date en su lugar.

Si tiene un índice en your_date , usaría

WHERE your_date >= TO_DATE('2010-08-03', 'YYYY-MM-DD')
  AND your_date <  TO_DATE('2010-08-04', 'YYYY-MM-DD')

o 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')

Si no hay índice o si no hay demasiados registros

WHERE TRUNC(your_date) = TO_DATE('2010-08-03', 'YYYY-MM-DD')

debería ser suficiente. TRUNC sin parámetro elimina horas, minutos y segundos de un DATE .

Si el rendimiento realmente importa, considere poner un Function Based Index en esa columna:

CREATE INDEX trunc_date_idx ON t1(TRUNC(your_date));