mysql如何使用工作日表
CREATE TABLE workdays ( id INT PRIMARY KEY AUTO_INCREMENT, workday DATE NOT NULL, INDEX idx_workday(workday) ); -- 插入2019年至2025年的工作日 INSERT INTO workdays(workday) SELECT DATE_ADD('2019-01-01', INTERVAL a.seq DAY) AS workday FROM ( SELECT 0 AS seq UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 ) AS a, ( SELECT 0 AS seq UNION ALL SELECT 10 UNION ALL SELECT 20 ) AS b WHERE DATE_ADD('2019-01-01', INTERVAL a.seq + b.seq DAY) BETWEEN '2019-01-01' AND '2025-12-31' AND WEEKDAY(DATE_ADD('2019-01-01', INTERVAL a.seq + b.seq DAY))
当需要计算指定时间段内的工作日数量时,可以使用以下代码:
SELECT COUNT(*) FROM workdays WHERE workday BETWEEN '2020-01-01' AND '2020-12-31';