SqlHints.com

Aussi, pour « DateTime2 » (vs. « DateTime »):

1. L’utilisation de la fonction « DateAdd » n’est pas une solution de contournement triviale pour ne pas avoir de conversion implicite / facile en numérique à virgule flottante (nombre de jours.fraction d’un jour) depuis la date-heure min, en particulier. vous essayez de prendre en compte plusieurs (sinon toutes) parties de la date (c’est-à-dire ajouter / soustraire 2 dates-heures complètes ensemble / les unes des autres).

2. Impossible de calculer facilement « l’âge » (par exemple en soustrayant simplement un « DateTime » d’un autre vs. utilisation de la fonction « DateDiff » qui ne renvoie pas « age » lorsque les deux dates-heures se trouvent de part et d’autre d’une limite calendrier / horloge de l’unité spécifiée).

3. Ne peut pas facilement être utilisé dans la fonction d’agrégat « Avg » (en « Jetant » simplement pour « Flotter » d’abord et de nouveau à « DateTime »). Btw, si vous demandez quel est le but d’obtenir un « Moy » de dates-heures: outre l’utilisation pour obtenir une durée moyenne lorsque les dates-heures (car une date-heure de base commune) sont utilisées pour représenter la durée (une pratique courante), il est également utile d’obtenir des statistiques de type tableau de bord sur ce que la date-heure moyenne est dans une plage / groupe de dates-heures. Une requête ad hoc standard pour rechercher / dépanner des valeurs dans une colonne qui peut ne plus être valide et / ou qui peut nécessiter une dépréciation consiste à répertorier pour chaque valeur le nombre d’occurrences et (si disponible) les horodatages min, avg et max associés à cette valeur.

Oui, je me rends compte qu’il existe une formule de contournement (assez complexe) (à « https://siderite.blogspot.com/2015/08/how-to-translate-t-sql-datetime2-to.html »), mais même cette formule ne fonctionne que pour les dates-heures plus récentes que l’année 1970 (ce qui signifie que vous perdez toute la plage supplémentaire * plus * 217 ans et cette plage supplémentaire est probablement (soi-disant) l’un des 2 plus grands avantages de « DateTime2 » bien que probablement pas nécessaire dans la plupart des cas d’utilisation), et il n’est pas nécessairement trivial de la faire supporter plus de plage en raison de problèmes de débordement numérique possibles.

Et, oui, je me rends compte que vous pourriez également « lancer » en « DateTime » d’abord (et si nécessaire revenir à « DateTime2 »), mais vous perdrez la précision supplémentaire et encore une fois, la plage supplémentaire (toutes antérieures à l’année 1753) avantages de « DateTime2 » par rapport à « DateTime » qui sont encore probablement les 2 plus grands et en même temps, probablement pas probablement nécessaires, ce qui pose la question de savoir pourquoi l’utiliser lorsque vous perdez les conversions implicites / faciles en numérique à virgule flottante (# de jours) pour l’addition / soustraction / « âge » (vs. DateDiff) / Avantage moyen des calcs, ce qui est important dans mon expérience.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

More: