可以通过以下步骤来判断批准日期是否在两天内批准,并排除工厂日历中的周末和公假:

  1. 计算申请日期后两天的日期,记录为变量A。
  2. 在工厂日历中查询从申请日期到变量A之间的所有日期,排除周末和公假,记录为工作日数。
  3. 计算批准日期和申请日期的日期差,排除周末和公假,记录为实际批准工作日数。
  4. 如果实际批准工作日数小于等于2,并且大于等于工作日数,则判断批准日期在两天内批准。

SQL代码如下:

DECLARE @applyDate DATE = '2021-01-01'
DECLARE @approveDate DATE = '2021-01-04'

DECLARE @endDate DATE = DATEADD(day, 2, @applyDate)

DECLARE @workdays INT = (
    SELECT COUNT(*) FROM factoryCalendar 
    WHERE date BETWEEN @applyDate AND @endDate 
    AND isWeekend = 0 AND isHoliday = 0
)

DECLARE @actualWorkdays INT = (
    SELECT COUNT(*) FROM factoryCalendar 
    WHERE date BETWEEN @applyDate AND @approveDate 
    AND isWeekend = 0 AND isHoliday = 0
)

IF @actualWorkdays <= 2 AND @actualWorkdays >= @workdays
    PRINT '批准日期在两天内批准'
ELSE
    PRINT '批准日期不在两天内批准'

其中,@applyDate@approveDate分别为申请日期和批准日期,factoryCalendar为工厂日历表,包含日期、是否周末、是否公假等字段。通过计算工作日数和实际批准工作日数,判断批准日期是否在两天内批准。

SQL 计算工作日内审批时间:判断审批是否在两天内完成

原文地址: https://www.cveoy.top/t/topic/nCqF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录