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'
Другие вопросы по тегам