有没有更简单的方法将毫秒转换为HH.MM(十进制)?

时间:2014-04-09 22:09:22

标签: tsql

将毫秒转换为HH.MM .....

SELECT empid, jobid, 
CONVERT(DECIMAL(10,2),(Sum(CONVERT(DECIMAL(10,2),@duration))/(60*60)/1000)) 
 AS totaltime 
FROM completedshift 
GROUP BY employeeid

我觉得我不应该转换转换的总和。

2 个答案:

答案 0 :(得分:0)

我不能为它的效率提供凭证,但是快速谷歌搜索使我获得了以下here。您可以使用转换线并将其插入您的代码中。

 declare @SomeMilliSecondsNumber bigint
 select @SomeMilliSecondsNumber =54013
 select convert(varchar,dateadd(ms,@SomeMilliSecondsNumber,0),114)

我目前无法访问sqlfiddle,但会在访问时发布。我在工作中的数据库中尝试了它没有问题。

<强> View SQL Fiddle Here

答案 1 :(得分:0)

这就是我解决问题的方法......

SELECT   employeeId, jobId, CONVERT(decimal(10, 2), SUM(CONVERT(decimal(10, 2), totalTime)) / (60 * 60) / 1000) AS TotalTime
FROM     dbo.CompletedShift
GROUP BY employeeId, jobId

我一直都是这样。我认为,因为我的大部分价值都是0.00,所以它不起作用。没意识到我的大部分时间都在0到3分钟之间。为了达到这个精度,我需要{0.0}的DECIMAL(10,3)。在这种情况下,不需要精度,在4分钟内可以接受0.00。