MySQL生成工作日歷表是一項常見的操作,主要是為了方便公司或個人日程安排和維護。下面我們就來介紹一下如何使用MySQL生成工作日歷表。
首先,我們需要創建一個名為calendar的表來存儲日期和工作日信息:
CREATE TABLE `calendar` ( `date` date NOT NULL, `workday` tinyint(4) NOT NULL, PRIMARY KEY (`date`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
接下來,我們需要往表中插入數據,可以使用以下代碼:
SET @startdate = '2022-01-01'; SET @enddate = '2022-12-31'; WHILE @startdate<= @enddate DO IF DAYOFWEEK(@startdate) IN (1,7) THEN INSERT INTO calendar VALUES (@startdate, 0); ELSE INSERT INTO calendar VALUES (@startdate, 1); END IF; SET @startdate = DATE_ADD(@startdate, INTERVAL 1 DAY); END WHILE;
代碼解釋:
- 第一行和第二行定義了起始日期和結束日期。
- 第四行到第十三行使用WHILE循環遍歷起始日期和結束日期之間的所有日期。
- 第五行判斷當前日期是否為周六或周日,如果是,則表示當天不是工作日,插入數據0;否則插入數據1。
- 第七行通過DAYOFWEEK函數獲取當前日期的星期幾。
- 第八行到第九行根據星期幾判斷當天是否為工作日,如果是則插入數據1,否則插入數據0。
- 第十一行使用DATE_ADD函數將當前日期加一天。
- 第十四行結束WHILE循環。
通過以上代碼,我們就可以在calendar表中生成一整年的工作日歷表。