我有一个查询,它获取员工的姓名、日期、工作时间、工资并根据工作时间 * 工资计算工资。
正在计算的工作时间分钟数被丢弃。我只在整小时内获得值(value)。快照示例:
我主要关心的是workingHours和wageAmount
workingHours 显示为 5。这是时间表快照:
如您所见,类次从上午 10:30 开始,到下午 4:00 结束(不包括午餐时间),因此实际总小时数是 4 小时半而不是 5 小时。
这是计算小时数的查询片段:
DATEDIFF(HOUR, shiftStart.timeEntered, shiftEnd.timeEntered) - DATEDIFF(HOUR, lunchStart.timeEntered, lunchEnd.timeEntered) AS workingHours,
我的问题是:
<强>1。如何准确计算包括分钟在内的工作时间(舍弃秒数)?
因为我要计算分钟数,所以我必须计算每分钟的工资,所以我必须输入以下代码来计算每分钟的工资:
ROUND((((DATEDIFF(HOUR, shiftStart.timeEntered, shiftEnd.timeEntered) - DATEDIFF(HOUR, lunchStart.timeEntered, lunchEnd.timeEntered)) * 60) * (cast(((w.wageAmount/60)-((w.wageAmount/60)%.001)) as decimal (18,3)))), 0) AS "SalaryPerMin",
最佳答案
改为使用 DATEDIFF(minute, shiftStart.timeEntered, shiftEnd.timeEntered) * 1.0/60
,以小数形式给出小时。
关于sql - 如何计算包括分钟在内的工时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3895406/