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

Comparaison de date Oracle dans la clause where

Pas tout à fait, la DATE le type de données n'a pas de format ; il est stocké en interne dans des tables sous la forme 7-bytes (l'année est de 2 octets et le mois, le jour, l'heure, la minute et la seconde sont de 1 octet chacun). L'interface utilisateur que vous utilisez (c'est-à-dire SQL/PLUS, SQL Developer, Toad, etc.) gérera le formatage d'une DATE de son format binaire à un format lisible par l'homme. Dans SQL/Plus (ou SQL Developer), ce format est basé sur le NLS_DATE_FORMAT paramètre de session .

Si la DATE est entré en utilisant uniquement le jour, le mois et l'année, alors le composant de temps va (probablement) être réglé sur 00:00:00 (minuit).

En supposant que le composant horaire de votre colonne DOJ est toujours minuit, alors :

SELECT COUNT(*)
FROM   students
WHERE  doj = TO_DATE( your_param, 'dd/mm/yyyy' )

S'il n'est pas toujours minuit, alors :

SELECT COUNT(*)
FROM   students
WHERE  TRUNC( doj ) = TO_DATE( your_param, 'dd/mm/yyyy' )

ou :

SELECT COUNT(*)
FROM   students
WHERE  doj >= TO_DATE( your_param, 'dd/mm/yyyy' )
AND    doj <  TO_DATE( your_param, 'dd/mm/yyyy' ) + INTERVAL '1' DAY