我正在尝试将分钟转换为时钟时间。
我有分钟= 27822,并希望将其转换为时钟时间,即使它经过24:00,即27822分钟= 52:45。我尝试过:
CAST([Down Time Minutes] AS DECIMAL(38, 8)) / 3600
这仅给我小时,即03:50,如果超过24小时则不包括天数
答案 0 :(得分:0)
请,请阅读Larnu和Gordon Linoff留下的评论-其中应该考虑非常好的观点和问题,尤其是关于您如何选择存储数据以及如何显示数据的问题。
但是,由于我的咖啡似乎很有趣,而且我总是需要检查一下我的2005年安装电脑的情况,因此有一些方法可以将INT
转换为类似时钟时间。正如戈登指出的那样,所有这些都将输出463:42。
DECLARE @t INT;
SET @t = 20;
/*SQL Server pre-2008*/
SELECT LEFT('00',2-LEN(@t/60))+CAST((@t/60) AS VARCHAR(5)) + ':' + LEFT('00',2-LEN(@t%60))+CAST((@t%60) AS VARCHAR(2))
/*SQL Server 2008+ -- longer, but we get to play with REPLICATE*/
SELECT REPLICATE('0',2-LEN(@t/60))+CAST((@t/60) AS VARCHAR(5)) + ':' + REPLICATE('0',2-LEN(@t%60))+CAST((@t%60) AS VARCHAR(2))
/*SQL Server 2012+*/
SELECT CONCAT(FORMAT((@t/60),'0#'),':',FORMAT((@t%60),'0#'))