将int转换为hh:mm格式

时间:2019-10-10 14:55:44

标签: sql-server tsql

我为小时和分钟分别设置了整数,我需要找到一种方法来获取小时总数,然后是分钟,最好采用HH:MM格式。我面临的问题是,当分钟数少于十分钟时,没有前导零,而我出于报告原因正在这样做,因此希望能够做类似的事情

总工作时间

102:06代表102小时6分钟

DECLARE @hours INT  = 102
declare @minutes int = 6

SELECT
 CONCAT(CAST (SUM((@hours*60)+@minutes)/60 AS VARCHAR(5)) , ':' , CAST (SUM((@hours*60)+@minutes)%60 AS VARCHAR(2)))

2 个答案:

答案 0 :(得分:1)

在SQL Server中,您可以执行以下操作:

select concat(hours, ':',
              right('00' + minutes, 2)
             )

另一种方法是:

select concat(hours, ':',
              right(convert(varchar(255), 100 + minutes), 2)
             )

答案 1 :(得分:0)

另一个使用format()的类似选项

示例

DECLARE @hours INT  = 102
declare @minutes int = 6

Select concat(@hours,format(@minutes,':00'))

返回

102:06