DateDiff ans en décimales
J'ai deux dates dans lequel je voudrais savoir le nombre d'années écoulées entre eux, cependant j'aurais besoin de montrer la valeur à deux décimales. J'ai essayé ce qui suit, mais je reçois toujours une valeur retournée de 0 comme tous mes dates ne couvrent pas l'ensemble de l'année:
DATEDIFF(yy, @EndDateTime, i.mat_exp_dte)
J'ai ensuite essayé de trouver le nombre de jours entre les deux et puis en la divisant par 365, mais cela renvoie toujours 0:
DATEDIFF(dd, @EndDateTime, i.mat_exp_dte)/365
Suis confus pour l'instant quant à la façon de la calculer. Aurais-je besoin de convertir le DataDiff dans un type de données différent?
OriginalL'auteur chrissy p | 2012-05-02
Vous devez vous connecter pour publier un commentaire.
Essayez plutôt ceci.
Divisant int avec un entier (int) returns int. Diviser un décimal et vous obtiendrez un nombre décimal.
select cast(1.19999 numériques(3, 2)) =1.20..... mal...:)
Dernier essai 🙂
select round(1.19999, 2, 1)
select CAST ( round(1.19999, 2, 1) QUE numérique(3, 2))........mais je pense que c'est trop long...:)
Ce ne serait pas prendre en compte les années bissextiles. Son un petit ajustement, mais encore faudrait-il être pris en compte.
OriginalL'auteur Mikael Eriksson
.0 est synonyme de nombre à virgule flottante, par conséquent, les calculs comprennent les décimales. Sans elle, vous calculer division entière.
OriginalL'auteur Diego
Si vous voulez une version plus précise de ce que les comptes pour les années bissextiles, alors vous pouvez faire ceci à la place:
OriginalL'auteur Isaac Fratti