在SQL中将持续时间转换为秒

时间:2018-06-20 19:36:47

标签: sql sql-server

我在SQL中有此表data,其中显示了用户和持续时间,但是持续时间有时是纯秒,而有些则介于分钟和秒之间

    User   |  Duration
--------------------------
      A    |  3:20
      B    |  :38
      CX   |  1:43
      V    |   45
      B    |  6:35
     ...   |  ....

所需的输出(纯秒)

    User   |  Duration
--------------------------
      A    |  200
      B    |  38
      CX   |  103
      V    |  45
      B    |  395
     ...   |  ...

我一直在尝试使用SQL中的不同函数,但尚未找到一种既能同时显示分钟部分又能同时显示秒部分的函数

1 个答案:

答案 0 :(得分:2)

一种方法是将字符串转换为时间类型,然后使用时间算术:

select datediff(second, 0, cast('00:' + right('0' + duration, 5) as time))

另一种方法仅使用字符串和数字运算:

select cast(left(duration, charindex(':', t) - 1) as int)*60 + cast(right(duration, 2) as int)