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