我data在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中的不同功能,但尚未找到一种既能同时适用于分钟部分又适用于秒部分的功能
一种方法是将字符串转换为时间类型,然后使用时间算法:
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)