我有一个查询,它使用两个日期之间的差异来查找查询中其他位置使用的持续时间' 首先,我想排除没有工作日,其次,从剩下的工作日中排除仅使用预定义的工作时间段(即08:00 - 20:00)。 周一至周五(08:00-20:00)和周二和周四09:00-17:00的工作时间段相同。
答案 0 :(得分:1)
如果您有这样的日期和工作时间表:
select * from days;
day hours
1 0
2 12
3 8
...
然后这个查询就会这样做:
select sum( ( (next_day(:end_date-7,days.day)
-next_day(:start_date-1,days.day)
) / 7 + 1
) * days.hours
) num
from days
答案 1 :(得分:0)
有一个可以用任何语言实现的公式:
number_of_days - math_round_down(10 * (number_of_days / (business_days_in_a_week * days_in_a_week)))
了解详情:"How to find business days in current month with Javascript?"