如何将小时、分钟和秒 (HH:mm:ss) 转换为 SQL 中的分钟和秒 (mm:ss)

How to Convert Hours, minutes and seconds (HH:mm:ss) to minutes and seconds (mm:ss) in SQL

假设我有 2 小时 47 分钟 10 秒 (02:47:10),它采用 hh:mm:ss 格式作为时间列中的值。我只想将它转换为分钟和秒 (mm:ss)。 因此结果应该是 sql 中的 167 分钟和 10 秒。 我试过使用代码

SELECT cast(substring('02:47:10',1,2) AS int)*60+
       cast(substring('02:47:10',4,2) AS int)+ 
       cast(substring('02:47:10',7,2) AS int)/60.0 AS minutes

结果是 167.166666。

我想要的输出应该是 167:10 (mm:ss) 格式

只需将小时乘以 60,然后将其添加到分钟。然后重新格式化为类似值的时间:

SELECT CONCAT((DATEPART(HOUR,'02:47:10')* 60) + DATEPART(MINUTE,'02:47:10'),':',DATEPART(SECOND,'02:47:10'));

修改了你的表达方式

SELECT cast (cast(substring('02:47:10',1,2) AS int) * 60 +
             cast(substring('02:47:10',4,2) AS int) as varchar(10)) + ':' +
       substring('02:47:10',7,2) AS minutes

也许是一种字符串操作更少的更轻便的方法

例子

Declare @T time = '02:47:10'

Select concat(datediff(MINUTE,0,@T),':',datepart(second,@T))

结果

167:10