我有一个列作为varchar(10)
进入我的SQL数据库,但看起来像HH:MM:SS。列名是runTime。
我需要将该列转换为秒并使用它和另一个名为totalItems的colunm进行一些计算。 totalItems是int
数据类型。一个计算的例子是:
totalItems/runTime
所以,似乎我需要将runTime转换为十进制,然后在计算中使用它,但是当我不能在没有先将时间转换为秒的情况下执行此操作时,或者我得到一个错误(由于“:”)。
那么,我怎样才能首先将sessionRunTime转换为秒,然后将这些秒转换为十进制数据类型,然后从那里进行计算?一个例子可能是59222 totalItems和04:15:17 for runTime。
如果有更好的方法来解决这个问题,我当然也会对此持开放态度。谢谢!
答案 0 :(得分:0)
您可以转发datetime
并使用datediff将字符串转换为秒。
select datediff(second, 0, cast('04:15:17' as datetime))
结果:
15317
答案 1 :(得分:0)
只要小时部分不匹配或超过24小时,您就可以convert
到日期时间并使用built in functions计算出时间长达数秒:
select DATEDIFF(second,'00:00:00',CONVERT(datetime,'04:15:17'))
15317
如果您需要对此结果进行数学计算,而另一个值为int
,则1.0
的多个值或其他值将强制数学完成{{1}如果那是必需的话。