Dans Oracle, une DATE
a toujours une composante temporelle. Votre client peut ou non afficher le composant de temps, mais il est toujours là lorsque vous essayez de faire une comparaison d'égalité. Vous souhaitez également toujours comparer les dates avec des dates plutôt qu'avec des chaînes qui utilisent le NLS_DATE_FORMAT
de la session en cours pour faire des conversions implicites les rendant ainsi plutôt fragiles. Cela impliquera soit des littéraux de date ANSI, soit des to_date
explicites appels
Vous pouvez utiliser le TRUNC
fonction pour tronquer la DATE
à minuit
SELECT *
FROM porder
WHERE trunc(odate) = date '2013-10-04'
Ou vous pouvez faire une comparaison de gamme (ce qui sera plus efficace si vous pouvez bénéficier d'un index sur odate
)
SELECT *
FROM porder
WHERE odate >= to_date( '04-Oct-2013', 'DD-Mon-YYYY' )
AND odate < to_date( '05-Oct-2013', 'DD-Mon-YYYY' );