【问题标题】:How to Convert Hours, minutes and seconds (HH:mm:ss) to minutes and seconds (mm:ss) in SQL如何在 SQL 中将小时、分钟和秒 (HH:mm:ss) 转换为分钟和秒 (mm:ss)
【发布时间】:2023-03-14 04:30:02
【问题描述】:

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

【问题讨论】:

    标签: sql sql-server tsql sql-server-2012


    【解决方案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
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-06-02
          • 1970-01-01
          • 2014-10-01
          相关资源
          最近更新 更多