如何将小时、分钟和秒 (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
假设我有 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