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

Diff. entre les dates - SQL plus

Le titre de la question inclut "SQL plus", ce qui implique Oracle pour moi.

Oracle n'a pas de fonction DATEDIFF. La méthode la plus simple pour déterminer le nombre de jours entre 2 dates à l'aide d'Oracle est de soustraire une date à l'autre.

Select item, datebought, datesold, datesold-datebought as days from auctions;

Oracle stocke les informations de date et d'heure dans un champ de date. Il est courant de stocker les dates tronquées à minuit dans les champs de date d'Oracle si vous ne vous souciez pas de l'heure.

Si vos dates sont déjà tronquées à minuit, la valeur calculée sera un nombre entier.

Mais si vos dates stockées incluent des informations temporelles, vous souhaiterez peut-être tronquer la valeur pour obtenir une valeur intégrale. Je soupçonne que vous voudriez tronquer chaque date avant la soustraction, de sorte que si acheté un jour, alors à tout moment le lendemain compterait comme 1 jour. Oracle tronque les dates à minuit.

select item, datebought, datesold, trunc(datesold)-trunc(datebought) as days from auctions;

Je suis d'accord avec WarrenT que votre table ne devrait pas avoir la colonne des jours dénormalisés.