我在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中的不同函数,但尚未找到一种既能同时显示分钟部分又能同时显示秒部分的函数
答案 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)