如何在 SQL 中将小时、分钟和秒 (HH:mm:ss) 转换为分钟和秒 (mm:ss)
Posted
技术标签:
【中文标题】如何在 SQL 中将小时、分钟和秒 (HH:mm:ss) 转换为分钟和秒 (mm:ss)【英文标题】:How to Convert Hours, minutes and seconds (HH:mm:ss) to minutes and seconds (mm:ss) in SQL 【发布时间】:2021-09-07 04:00:39 【问题描述】:假设我有 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) 格式
【问题讨论】:
【参考方案1】:也许是一种更轻松的方法,更少的字符串操作
示例
Declare @T time = '02:47:10'
Select concat(datediff(MINUTE,0,@T),':',datepart(second,@T))
结果
167:10
【讨论】:
【参考方案2】:只需将小时乘以 60,然后将其添加到分钟即可。然后重新格式化为类似时间的值:
SELECT CONCAT((DATEPART(HOUR,'02:47:10')* 60) + DATEPART(MINUTE,'02:47:10'),':',DATEPART(SECOND,'02:47:10'));
【讨论】:
【参考方案3】:修改了你的表达
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
【讨论】:
以上是关于如何在 SQL 中将小时、分钟和秒 (HH:mm:ss) 转换为分钟和秒 (mm:ss)的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Oracle 中将毫秒转换为 hh mm ss 格式
在 Excel 中将时间格式化为天、小时、分钟和秒的更好方法?