小编典典

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

sql

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

    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中的不同功能,但尚未找到一种既能同时适用于分钟部分又适用于秒部分的功能


阅读 322

收藏
2021-04-15

共1个答案

小编典典

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

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)
2021-04-15