Ответ 1
Возьмите DateDiff
в секундах вместо этого, а затем разделите на 86400.0. Требуется десятичная точка.
Мне нужно сравнить 2 даты и вернуть количество дней между двумя запятыми.
Например:
при сравнении
SubmittedDate = 2012-02-29 07:02:55.000
FirstCall = 2012-02-29 12:12:19.000
Это разница в 5 часов. Поэтому я бы вернулся 0.2 дня
Я пробовал:
CAST(DATEDIFF(Hour, SubmittedDate, FirstCall)/30.0 AS DECIMAL(5,2)) As HoursBeforeFirstCall
CAST(DATEDIFF(Day, SubmittedDate, FirstCall) AS DECIMAL(5,2)) As HoursBeforeFirstCall
Нет, похоже, работает.
Возьмите DateDiff
в секундах вместо этого, а затем разделите на 86400.0. Требуется десятичная точка.
Когда вы представляете дату как число, каждый день уже представлен 1.0 "единиц". Чтобы получить временной интервал двух дат как десятичного, вы можете просто вычесть их.
SELECT CAST((@FirstCall - @SubmittedDate) AS NUMERIC(10, 2))
Как насчет этого.
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)
Вот что я сделал:
ROUND(SUM(DATEDIFF(ss,StartDateTime,EndDateTime) / 60.0 / 60.0), 2)