【无标题】mysql设置工作日

drop PROCEDURE if exists `setWorkDay`;
CREATE  PROCEDURE `setWorkDay`(in yaerParam int(8))
BEGIN
DECLARE count INT DEFAULT 0;
DECLARE workOrWeek INT DEFAULT 1;
DECLARE temp INT DEFAULT 1;
DECLARE startDay DATE ;
SET startDay = DATE(concat(yaerParam,'-01-01'));
 
 delete from year_date_all where year(repDate)=yaerParam;
WHILE year(startDay)=yaerParam DO
SET  workOrWeek = DAYOFWEEK(DATE_SUB(startDay,INTERVAL 1 day));
	 if  exists(select id from gov_holiday_plan where startDay>=开始日期 and startDay<=结束日期) THEN
	 set  temp=temp+1;
	 ELSE 
		 IF (workOrWeek<=5) THEN
				INSERT INTO year_date_all(repDate,db_status) VALUES(startDay,1);
		 END IF;
		 IF exists(select id from gov_holiday_plan where startDay=调休上班1 or startDay=调休上班2) THEN
				INSERT INTO year_date_all(repDate,db_status) VALUES(startDay,1);
		 END IF;		 
	 END IF;
 SET count=count+1;
 SET startDay=DATE_ADD(DATE(startDay),INTERVAL 1 DAY);
END WHILE;
 
END


版权声明:本文为weixin_40320353原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。