Я делаю выбор различных полей даты и времени и хочу вычислить разницу между ними в долях часа. Я использую датировку, чтобы получить разницу в минутах, но когда я делю на 60, я не получаю дроби.
Пробный состав как десятичный и действительный
select
,[Call_Date]
,[Call_Time]
,convert(DATETIME, convert(char(8), call_date, 112)+ ' ' + convert(char(8), Call_time, 108)) as Call_DT
,[Roll_Time_Date]
,[Roll_Time_Time]
,convert(DATETIME, convert(char(8), Roll_time_date, 112)+ ' ' + convert(char(8), Roll_time_time, 108)) as Roll_DT
,cast(datediff(mi, (convert(DATETIME, convert(char(8), call_date, 112)+ ' ' + convert(char(8), Call_time, 108))),
(convert(DATETIME, convert(char(8), Roll_time_date, 112)+ ' ' + convert(char(8), Roll_time_time, 108))))/60 as decimal)
As Downtime
FROM [MFSQL_DTFM].[dbo].[MFWorkOrder] where Customer='Joe'
Пример данных:
Call_Date Call_Time Call_DT Roll_Time_Date Roll_Time_Time Roll_DT Downtime
2019-04-01 15:39:00 2019-04-01 15:39:00.000 2019-04-02 13:01:00 2019-04-02 13:01:00.000 21
2019-04-01 15:54:00 2019-04-01 15:54:00.000 2019-04-01 17:10:00 2019-04-01 17:10:00.000 1
2019-04-01 16:15:00 2019-04-01 16:15:00.000 2019-04-01 21:30:00 2019-04-01 21:30:00.000 5