PLSQL估计两个日期之间的特定营业日

时间:2011-06-09 10:44:11

标签: plsql

我有一个查询,它使用两个日期之间的差异来查找查询中其他位置使用的持续时间' 首先,我想排除没有工作日,其次,从剩下的工作日中排除仅使用预定义的工作时间段(即08:00 - 20:00)。 周一至周五(08:00-20:00)和周二和周四09:00-17:00的工作时间段相同。

2 个答案:

答案 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?"