0

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

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

totalItems/runTime

因此,似乎我需要将 runTime 转换为小数,然后在计算中使用它,但是当我不先将时间转换为秒就无法做到这一点时,或者我得到一个错误(由于“: ”)。

那么,我怎么可能先将 sessionRunTime 转换为秒,然后将这些秒转换为十进制数据类型,然后从那里进行计算?一个示例可能是 59222 totalItems 和 04:15:17 用于运行时间。

如果有更好的方法来处理这个问题,我当然也愿意接受。谢谢!

4

2 回答 2

0

您可以强制转换datetime并使用datediff将您的字符串转换为秒。

select datediff(second, 0, cast('04:15:17' as datetime))

结果:

15317
于 2012-05-28T12:15:48.973 回答
0

只要小时部分不匹配或超过 24,您就可以convert使用日期时间并使用内置函数计算时间的秒数:

select DATEDIFF(second,'00:00:00',CONVERT(datetime,'04:15:17'))

15317

如果您需要对此结果进行数学运算,并且另一个值是int,那么如果需要,则将其中的一个或多个值乘以1.0强制以floats 的形式进行数学运算。

于 2012-05-28T12:17:12.963 回答