Sql DATEDIFF将分钟转换为十进制

Sql DATEDIFF将分钟转换为十进制,sql,sql-server,casting,datediff,Sql,Sql Server,Casting,Datediff,我在将分钟转换为小数点时遇到了一些问题,尽管我已经看过了其他的答案 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这样的数字。我猜它是在事后转

我在将分钟转换为小数点时遇到了一些问题,尽管我已经看过了其他的答案

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这样的数字。我猜它是在事后转换的(我也尝试了转换函数,但没有用)。有什么想法吗?

Datediff返回一个整数,而不是浮点或数字

为了得到您想要的,您可能应该在几秒钟内进行diff,然后进行除法:

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'