数据库中有申请日期还有批准日期 怎么判断批准日期是否是在两个工作日批准的 除去工厂日历中的周末 公假
可以使用SQL语句中的DATEDIFF函数来计算两个日期之间的天数,并结合工厂日历中的周末和公假来排除不计的天数。具体实现方法如下:
- 计算申请日期和批准日期之间的天数:
DATEDIFF(day, 申请日期, 批准日期)
- 排除工厂日历中的周末和公假:
需要先创建一个工厂日历表,包含所有工作日和非工作日的日期。然后在计算天数时,使用INNER JOIN将工厂日历表和日期范围内的所有日期进行连接,只计算工作日的天数。
SELECT COUNT(*) AS 工作日天数
FROM 工厂日历表
WHERE 日期 >= 申请日期 AND 日期 <= 批准日期 AND 是否工作日 = '是'
- 判断批准日期是否在两个工作日内:
如果工作日天数小于等于2,则表示批准日期在两个工作日内,否则不在。
IF (SELECT COUNT(*) AS 工作日天数
FROM 工厂日历表
WHERE 日期 >= 申请日期 AND 日期 <= 批准日期 AND 是否工作日 = '是') <= 2
BEGIN
PRINT '批准日期在两个工作日内'
END
ELSE
BEGIN
PRINT '批准日期不在两个工作日内'
END
``
原文地址: https://www.cveoy.top/t/topic/c8NQ 著作权归作者所有。请勿转载和采集!