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 |
+----------+
Copyright © www.sqlfans.cn 2024 All Right Reserved更新时间: 2023-10-17 10:52:39

results matching ""

    No results matching ""