Вы можете попробовать один из следующих решений:
-- Solution 1: Mathematical correct time
CREATE TABLE #time(col1 time, col2 time)
INSERT INTO #time(col1, col2)
VALUES(N'09:35',N'16:00'),(N'8:10',N'22:44')
SELECT col1, col2, CONVERT(decimal(10,2),DATEDIFF(MINUTE,Col1,Col2))/60 as [output]
FROM #time
DROP TABLE #time
GO
-- Solution 2: Your expected value
CREATE TABLE #time(col1 time, col2 time)
INSERT INTO #time(col1, col2)
VALUES(N'09:35',N'16:00'),(N'8:10',N'22:44')
SELECT DATEDIFF(MINUTE,Col1,Col2)/60 as [hours], DATEDIFF(MINUTE,Col1,Col2)%60 as [minutes],
-- Contated values:
DATEDIFF(MINUTE,Col1,Col2)/60 + (CONVERT(decimal(10,2),DATEDIFF(MINUTE,Col1,Col2)%60))/100 as [output]
FROM #time
DROP TABLE #time
Выход Solution 1
:
col1 col2 output
---------------- ---------------- ---------------------------------------
09:35:00.0000000 16:00:00.0000000 6.416666
08:10:00.0000000 22:44:00.0000000 14.566666
Выход Solution 2
:
hours minutes output
----------- ----------- ---------------------------------------
6 25 6.250000
14 34 14.340000
Вы можете по-прежнему круглые/преобразования значения чтобы соответствовать вашему 2-значному шаблону - при необходимости.
Почему вы хотите получить такой формат? Не будет ли формат времени намного лучше? Вы пытаетесь вычесть время из времени, чтобы получить новое время, а затем манипулировать форматом, а не сохранять формат времени. –