计算sql中时间数据类型的总和

时间:2012-04-17 12:04:06

标签: sql-server-2008 tsql

我需要在sql中计算时间数据类型,以计算员工的每月工作时间,这显然会超过24小时(应至少为132小时)。但时间数据类型不支持大于23:59 :59.9999999。但我需要计算每月工作时间。

3 个答案:

答案 0 :(得分:2)

您确定Total working timeTime数据类型吗? 您的样本输入为'32:23:00','time'数据类型不支持 因为它的范围是00:00:00.0000000 through 23:59:59.9999999

如果是Time数据类型,那么您可以按照juergen的说明计算工资:

select cast(cast (100.00 as money) * datediff(second, 0, '23:23:00') / (60.0 * 60.0) as money)

我将值转换为货币数据类型以显示,可以将其与使用datediff()函数返回值相乘。

答案 1 :(得分:1)

您可以使用DATEDIFF功能减去日期。

结果可以乘以你的工资。

SELECT DATEDIFF(minute, '12:00:00', '12:30:00') / 60.0 * 100.0

答案 2 :(得分:1)

我尝试过这段代码,问题现在解决了。

sum(datediff(second, 0, timeYouWantToSum)) / 3600.0

将以十进制的形式给出工作小时数。现在我可以按周/楼/天花板修改这个总工时,也可以用每小时的工资乘以。谢谢