将 HHH:MM:SS 转换为秒

Zer*_*ity 1 t-sql sql-server datetime sql-server-2012

从源数据库中,我得到 HH:MM:SS 为 832:24:12

目前我正在使用以下语句,它在大多数情况下都可以正常工作 hh:mm:ss 但是当小时数超过 99 时它会失败

ISNULL(LEFT(COLUMN,2) * 3600  + RIGHT(LEFT(COLUMN,5),2) * 60 + RIGHT(COLUMN, 2) ,0)
Run Code Online (Sandbox Code Playgroud)

Joh*_*tti 5

只是对原始文件稍加调整的另一种选择

例子

Declare @V varchar(50) = '832:24:12'

Select (left(@V,charindex(':',@V)-1)*3600) + (left(right(@V,5),2)*60) + right(@v,2)
Run Code Online (Sandbox Code Playgroud)

退货

2996652
Run Code Online (Sandbox Code Playgroud)