mysql如何使用工作日表

2023年 8月 10日 27.8k 0

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))

通过以上代码,我们创建了一个名为workdays的表格并插入了2019年至2025年的工作日。代码中的WEEKDAY函数用于计算日期所在星期中的工作日编号,0表示周一,1表示周二,以此类推,4表示周五。当工作日编号小于5(即周一至周五)时,才插入记录。这样我们就得到了一个包含每个工作日的表格。

当需要计算指定时间段内的工作日数量时,可以使用以下代码:

SELECT COUNT(*) FROM workdays WHERE workday BETWEEN '2020-01-01' AND '2020-12-31';

以上代码将返回2020年的工作日数量。通过工作日表,我们可以方便地计算各种时间段内的工作日数量,进而对数据进行统计和分析。

相关文章

在一台虚拟机上搭建MGR 9.0集群
众所周知的原因安装PMM2
唯一上榜!OceanBase入选 2023“科创中国”先导技术榜!
MySQL 删除数据表
利用 MySQL 克隆插件搭建主从
MySQL索引前缀长度超限怎么办?这种方法帮你搞定

发布评论