mysql计算两个日期之间的工作日天数
在日常工作中,经常需要计算两个日期之间的工作日数。下面将介绍如何在MySQL中编写自定义函数来计算两个日期之间的工作日数。
- 第1步,创建一个存储过程,比如
workDays
DELIMITER //
CREATE PROCEDURE workDays (startDate DATE, endDate DATE)
BEGIN
DECLARE curDate DATE;
DECLARE workDays INT DEFAULT 0;
SET curDate = startDate;
WHILE curDate <= endDate DO
IF DAYOFWEEK(curDate) NOT IN (1, 7) THEN
SET workDays = workDays + 1;
END IF;
SET curDate = curDate + INTERVAL 1 DAY;
END WHILE;
SELECT workDays;
END //
DELIMITER ;
- 第2步,调用存储过程,比如
2023年10月1日
至2023年10月9日
共有6个工作日,因为10月1日、7日、8日是周末。
mysql> CALL workDays('2023-10-01', '2023-10-09');
+----------+
| workDays |
+----------+
| 6 |
+----------+