如何使用SQL语句生成一个月的日期列表
创作时间:
作者:
@小白创作中心
如何使用SQL语句生成一个月的日期列表
引用
CSDN
1.
https://blog.csdn.net/Ban_dan/article/details/138072454
在数据库开发中,有时我们需要生成一个月的日期列表。本文将介绍一种使用SQL语句直接生成指定月份日期列表的方法。
实现思路
生成连续的日期序列
首先,使用
SELECT子查询和DATE_ADD函数生成一个连续的日期序列,从指定月份的第一天开始。子查询中使用了三个
UNION ALL,每个UNION ALL语句生成一个数字序列,从0到9,分别代表个位、十位和百位。通过三个CROSS JOIN进行笛卡尔积,组合成了0到999的数字序列。DATE_ADD函数用于在指定日期上添加指定的天数,这里用来生成从指定月份的第一天开始的日期序列。限制日期范围
使用
WHERE子句限制生成的日期序列,确保日期不超过指定月份的最后一天。按照日期排序
使用
ORDER BY对生成的日期序列按照日期排序。
SQL代码实现
SELECT dateList.date_range AS `monthDate`
FROM (
SELECT DATE_ADD(CONCAT('2024-01', '-01'), INTERVAL n DAY) AS date_range
FROM (
SELECT a.N + b.N * 10 + c.N * 100 AS N
FROM (
SELECT 0 AS N
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
) a /*10*/
CROSS JOIN (
SELECT 0 AS N
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
) b /*100*/
CROSS JOIN (
SELECT 0 AS N
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
) c
WHERE a.N + b.N * 10 + c.N * 100 <= DATEDIFF(LAST_DAY(STR_TO_DATE(CONCAT('2024-01', '-01'), '%Y-%m-%d')), CONCAT('2024-01', '-01'))
) days
ORDER BY date_range
) dateList
ORDER BY dateList.date_range
使用说明
代码中2024-01部分可以替换为任意年月,以生成相应月份的所有日期。例如,将2024-01替换为2023-12,即可生成2023年12月的所有日期。
运行效果
热门推荐
主题游园、烟花秀、沉浸观影:英雄联盟手游电竞内容体验再升级
看东西模糊,原来是眼里长了“膜”?
轻松删除WPS文档中的分页符,提升编辑体验与排版整洁度
李兰迪:从童星到实力派的蜕变之路
健康风险评估:早发现,早干预,早治愈
营销欺诈示例分析论文
手动对焦如何使用更有效率?
六款适合客厅的高颜值易养绿植推荐
第一次工业革命及特点
国家组织胰岛素集中带量采购方案,胰岛素国采为何规则温和
霉菌性食道管炎怎么引起的
CHMP对伊维菌素/阿苯达唑用于治疗由多种蠕虫寄生虫引起的感染给出积极科学意见
嗜酸性粒细胞增高的临床意义
药王菩萨的坐骑是什么动物 故事传说:药王菩萨为什么骑虎握龙
标准体重计算公式是什么
如何正确解读期刊的投稿要求?
2025年江苏省考必看:常州进面分数分析
居间合同是什么?一文详解居间合同的定义、特征与注意事项
事关急诊医疗费用结算!河北省医保局最新通知
重庆医保异地就医注意事项
日本九州旅游攻略:从福冈到鹿儿岛的深度人文之旅
永劫无间游戏微加速与优化指南:硬件、系统、游戏内设置及网络优化全攻略
首所!潍坊理工学院与马来西亚汝来大学合并办学
火山石对生态环境的影响探讨
统筹“海、湾、陆” 广西如何开创湾区经济新未来?
极氪X紧急状况解锁全攻略:电子系统失灵怎么办?
网络环路的迷雾:深入了解二层与三层环路
布局、色彩与动画:设计中的三大要素及其交互影响
皮肤的变化跟身体健康有关吗
186号段属于哪个运营商