将秒数转换为&00; 00:00:00'格式 - SQL Server

时间:2017-01-20 09:20:54

标签: sql sql-server datetime time seconds

我有一份报告,其中我必须计算一周内任何员工的整体工作时间。该报告反映的时间超过24小时(或86400秒)。我想将所有秒数转换为" 00:00:00"格式保持列的格式为日期时间或时间,以便我可以使用时间字段进行进一步分析。

以下是我到目前为止所尝试的内容:

Declare @WorkTimeInSeconds int
Set @WorkTimeInSeconds = 144000 **--This value is an example. Mostly values are above 86400 seconds**
Select ActualHoursWorked =       convert(varchar,(@WorkTimeInSeconds)/3600)
            + ':' + right( '0' + convert(varchar,((@WorkTimeInSeconds) %3600)/60),2)
            + ':' + right( '0' + convert(varchar,(@WorkTimeInSeconds) %60),2)

上面的代码给了我我需要的东西,但是上面将INT中的秒转换为varchar,这不是我需要的报告。我需要输出为日期时间/时间格式,这可以给我带来像' 40:00:00'对于上面的例子。 我希望我能够提供所有信息。请帮忙,因为我很多天都在努力解决这个问题。

预期输出:40:00:00

1 个答案:

答案 0 :(得分:1)

也许尝试CONVERT样式108。

SELECT CONVERT(varchar(10),convert(varchar,(@WorkTimeInSeconds)/3600)
            + ':' + right( '0' + convert(varchar,((@WorkTimeInSeconds) %3600)/60),2)
            + ':' + right( '0' + convert(varchar,(@WorkTimeInSeconds) %60),2),108)