DATEDIFF конвертировать минуты в десятичные
У меня есть некоторые проблемы с преобразованием минут в десятичную, хотя я смотрел другие ответы на SO.
select cast(datediff(minute, min(start_time), min(complete_time)) as decimal (10,10))
from TRACKED_OBJECT_HISTORY TOH1
where TOH1.op_name = 'Assembly'
Результат возвращается, но я всегда получаю результаты, такие как 2,00, 4,00, 5,00 вместо чисел, таких как 1,86, 3,99, 5,03. Я предполагаю, что это преобразование после факта (я также попробовал функцию преобразования безрезультатно). Какие-нибудь мысли?
1 ответ
Решение
Datediff возвращает целое число, а не число с плавающей запятой или число.
Чтобы получить то, что вы хотите, возможно, вы должны сделать различие в секундах, а затем разделить:
select cast(datediff(second, min(start_time), min(complete_time))/60.0 as decimal (10,10))
from TRACKED_OBJECT_HISTORY TOH1 where TOH1.op_name = 'Assembly'