使用HH进行SQL计算:MM:SS

时间:2012-05-28 12:11:17

标签: sql-server-2005

我有一个列作为varchar(10)进入我的SQL数据库,但看起来像HH:MM:SS。列名是runTime。

我需要将该列转换为秒并使用它和另一个名为totalItems的colunm进行一些计算。 totalItems是int数据类型。一个计算的例子是:

totalItems/runTime

所以,似乎我需要将runTime转换为十进制,然后在计算中使用它,但是当我不能在没有先将时间转换为秒的情况下执行此操作时,或者我得到一个错误(由于“:”)。

那么,我怎样才能首先将sessionRunTime转换为秒,然后将这些秒转换为十进制数据类型,然后从那里进行计算?一个例子可能是59222 totalItems和04:15:17 for runTime。

如果有更好的方法来解决这个问题,我当然也会对此持开放态度。谢谢!

2 个答案:

答案 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}如果那是必需的话。