SQL服务器 - 点心时间显示问题

我发现对堆栈溢出下面的公式已经帮我总结的时间值,稍有调整之后的作品的辉煌:SQL服务器 - 点心时间显示问题

SELECT CAST(t.TotalHours/3600 AS VARCHAR(2)) + ':' 

+ CAST(t.TotalHours%3600/60 AS VARCHAR(2)) + ':00'

FROM (SELECT SUM(DATEDIFF(S, '00:00', WorkingHours)) AS TotalHours

FROM workhour) t

从SQL How to sum times from Time datatype columns in hh:mm:ss

但是我现在在格式方面有问题。当我运行我的数据这个查询,它返回的时间和格式如下:HH:M:SS (32:0:00)

我的数据:

WorkingHours 

05:30

06:00

05:30

08:00

07:00

预期输出:

TotalHours 

32:00:00

正如你会发现,我的数据不包含秒,所以我在末尾添加了一个字符串。其会议纪要似乎是导致我的一个问题。

问: 是否有办法来调整上述forumla这样我就可以得到总显示为HH:MM:SS -> 32:00:00

注意:时分秒字段返回0,就会出现此,或有值小于10 ...

Thankyou提前帮助。我正在使用SQL Server 2016数据中心,并将数据存储在我的表中,格式为HH:MM,名为WorkingHours。

工作答:

SELECT CAST(t.TotalHours/3600 AS VARCHAR(2)) + ':' + 

RIGHT('000' + CAST (t.TotalHours%3600/60 AS VARCHAR(2)), 2) + ':00'

FROM (SELECT SUM(DATEDIFF(S, '00:00', TotalHours)) AS TotalHours

FROM workhour) t

回答:

您可以使用:

RIGHT('000' + CAST (t.time_sum%3600/60 AS VARCHAR(2)), 2) 

这将需要的 '000' 串联和计算的分钟2最右边的字符。所以如果你的分钟少于10分钟,前面加上0。产生于01 - 60。 我总是比我需要更多的使用0,只是因为它没关系,而且我永远都是安全的。

回答:

Right('0'+cast(yourvalue as varchar(2)),2) 

以上是 SQL服务器 - 点心时间显示问题 的全部内容, 来源链接: utcz.com/qa/257744.html

回到顶部