将秒转换为“00:00:00”格式 - SQL Server

Posted

技术标签:

【中文标题】将秒转换为“00:00:00”格式 - SQL Server【英文标题】:Convert seconds to '00:00:00' format - SQL Server 【发布时间】:2017-01-20 09:20:53 【问题描述】:

我有一份报告,我必须在其中计算任何员工一周内的总工作时间。该报告反映超过 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

【问题讨论】:

144000 秒的期望输出是多少? @AnoopH.N 输出应为 40:00:00。抱歉,忘记添加预期的输出。现在添加到问题中。 【参考方案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)

【讨论】:

以上是关于将秒转换为“00:00:00”格式 - SQL Server的主要内容,如果未能解决你的问题,请参考以下文章

100个 Unity实用技能☀️ | Unity 将秒数转化为00:00:00时间格式

100个 Unity实用技能☀️ | Unity 将秒数转化为00:00:00时间格式

sql如何把d,h,m,转换成秒

C# 将 DateTime 转换为 Sql Server 2005 格式

PHP 时间转换 00:00:00格式

以 00:00:00 时钟格式将 NSTimeInterval 转换为 NSString