我需要在 sql 中计算 time 数据类型,以便计算员工的每月工作时间,这显然会超过 24 小时(应该至少 132 小时)。但是 time 数据类型不支持大于 23:59:59.9999999 。但我需要计算每月的工作时间。
问问题
2104 次
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 回答