-2

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

4

3 回答 3

1

DATEDIFF您可以使用该函数减去日期。

结果可以乘以你的薪水。

SELECT DATEDIFF(minute, '12:00:00', '12:30:00') / 60.0 * 100.0
于 2012-04-17T12:06:59.047 回答
1

你确定Total working time是作为Time数据类型给出的吗?您的示例输入是“时间”数据类型不支持的“32:23:00”,因为它的范围是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() 函数返回值相乘。

于 2012-04-17T12:34:23.793 回答
1

我已尝试使用此代码,现在问题已解决。

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

会给你工作小时数作为小数。现在我可以通过圆形/地板/天花板修改这个总工作时间,也可以乘以每小时工资。谢谢

于 2012-04-18T07:35:13.940 回答