创建一个存储过程,,再调用这个存储,我的这个张表把节假日与周末都表示出来了的
然后存储以下为存储过程
-------------------------------------
CREATE PROCEDURE AddWorkDays(IN startDate DATE, IN workDays INT, OUT resultDate DATE)
BEGIN
DECLARE currentDate DATE;
DECLARE workdayCounter INT DEFAULT 0;
SET currentDate = startDate;
WHILE workdayCounter < workDays DO
SET currentDate = DATE_ADD(currentDate, INTERVAL 1 DAY);
IF NOT EXISTS (
SELECT 1 FROM holiday_info
WHERE date_id = currentDate AND (code_type = 1 OR code_type = 3)
) THEN
SET workdayCounter = workdayCounter + 1;
END IF;
END WHILE;
SET resultDate = currentDate;
END
--------------------------------------------
我的holiday_info 表 code_type 对应的意思
工作日: 0
法定节假日: 1
休息日加班(调休): 2
休息日: 3
---------------------

-----------------最后存储的查询结果--------------------------
比如2025-04-27是上班,加10天后正确的结果是2025-05-14,因为1-5号是法定节日,还有其它周末

2025-05-05加10个工作日
