首页 > 解决方案 > 如何在 SQL 中将小时、分钟和秒 (HH:mm:ss) 转换为分钟和秒 (mm:ss)

问题描述

假设我有 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) 格式

标签: sqlsql-servertsqlsql-server-2012

解决方案


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

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

推荐阅读