Подтвердить что ты не робот

TSQL DateDiff для возврата числа дней с 2 ​​десятичными знаками

Мне нужно сравнить 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

Нет, похоже, работает.

4b9b3361

Ответ 1

Возьмите DateDiff в секундах вместо этого, а затем разделите на 86400.0. Требуется десятичная точка.

Ответ 2

Когда вы представляете дату как число, каждый день уже представлен 1.0 "единиц". Чтобы получить временной интервал двух дат как десятичного, вы можете просто вычесть их.

SELECT CAST((@FirstCall - @SubmittedDate) AS NUMERIC(10, 2))

Ответ 3

Как насчет этого.

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)

Ответ 4

Вот что я сделал:

ROUND(SUM(DATEDIFF(ss,StartDateTime,EndDateTime) / 60.0 / 60.0), 2)