Je dois comparer deux dates et renvoyer le nombre de jours entre deux décimales.
Par exemple:
en comparant
SubmittedDate = 2012-02-29 07:02:55.000
FirstCall = 2012-02-29 12:12:19.000
C'est une différence de 5 heures. Donc, je reviendrais 0,2 jour
J'ai essayé:
CAST(DATEDIFF(Hour, SubmittedDate, FirstCall)/30.0 AS DECIMAL(5,2)) As HoursBeforeFirstCall
CAST(DATEDIFF(Day, SubmittedDate, FirstCall) AS DECIMAL(5,2)) As HoursBeforeFirstCall
Aucun ne semble fonctionner.
Prenez plutôt DateDiff
en secondes, puis divisez par 86400.0
. Le point décimal est requis.
Lorsque vous représentez une date sous forme de nombre, chaque jour est déjà représenté par 1.0 "unités". Pour obtenir la période de deux dates sous forme décimale, vous pouvez simplement les soustraire.
SELECT CAST((@FirstCall - @SubmittedDate) AS NUMERIC(10, 2))
Que dis-tu de ça.
select convert(decimal(12,2),convert(decimal(12,2),datediff(second,'2012-02-29 07:02:55.000','2012-02-29 12:12:19.000'))/60/60/24)
Voici ce que j'ai fait:
ROUND(SUM(DATEDIFF(ss,StartDateTime,EndDateTime) / 60.0 / 60.0), 2)