MySQL生成日期维度表

1、通过存储过程生成

sql 复制代码
DELIMITER $$
CREATE PROCEDURE dateDim(startDate DATE, endDate DATE)  
BEGIN  
    DECLARE currentDate DATE;  
    SET currentDate = startDate;  
  
    WHILE currentDate <= endDate DO  
        INSERT INTO sys_calendar (stats_day) VALUES (currentDate);  
        SET currentDate = DATE_ADD(currentDate, INTERVAL 1 DAY);  
    END WHILE;  
END $$
DELIMITER ;  
  

CALL dateDim('2022-01-01', '2030-12-31');

2、通过递归的公用表表达式生成

sql 复制代码
WITH RECURSIVE date_series AS (  
  SELECT '2023-01-01' AS date_value  
  UNION ALL  
  SELECT DATE_ADD(date_value, INTERVAL 1 DAY)  
  FROM date_series  
  WHERE date_value < '2023-12-31'  
)  
INSERT INTO date_dim (date_value)  
SELECT date_value FROM date_series;
相关推荐
浪子明X13 分钟前
从 MongoDB 文档到关系模型:构建可重跑、可对账的数据迁移流水线
数据库·mongodb·oracle
杜子不疼.16 分钟前
国产数据库撑起固井软件自主化:金仓 × 中海油服「海恒 Cemsol」落地解析
数据库
隔窗听雨眠24 分钟前
GBase 8s并发控制深度解析:封锁机制、隔离级别与死锁处理全攻略
服务器·数据库·oracle
刀客Doc39 分钟前
即时零售不只是多一个渠道,品牌开始重做终端生意
大数据·数据库
就叫飞六吧1 小时前
防抖、幂等、唯一约束三件套 ;
数据库
神奇霸王龙1 小时前
Agent 准入门控屠夫:5 旗舰 4 维度评估
linux·运维·数据库·ai·ai作画·agent·ai编程
鲸采云SRM采购管理系统1 小时前
采购管理系统哪家好?2026最新测评对比
java·服务器·数据库
cfm_29142 小时前
基于Binlog实现不停机数据库平滑迁移技术
运维·数据库·架构
Full Stack Developme2 小时前
SQL 注入 的历史及设计工作原理
数据库·sql
Tisfy2 小时前
Codex:通过编辑配置文件添加带Bearer的自定义MCP
数据库·大模型·agent·codex·mcp