Oracle
 sql >> Base de données >  >> RDS >> Oracle

Sélectionner dans le tableau en ne connaissant que la date sans heure (ORACLE)

DATE est un mot-clé réservé dans Oracle, j'utilise donc le nom de colonne your_date à la place.

Si vous avez un index sur your_date , j'utiliserais

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

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

S'il n'y a pas d'index ou s'il n'y a pas trop d'enregistrements

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

devrait être suffisant. TRUNC sans paramètre supprime les heures, les minutes et les secondes d'une DATE .

Si les performances comptent vraiment, envisagez de mettre un Function Based Index sur cette colonne :

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