如何使用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月的所有日期。
运行效果
热门推荐
和平精英 狙击枪打不准?调好这4个设置,你也能成为狙神
聚合物电池与锂电池的区别(聚合物电池与锂电池的区别笔记本电脑)
吃中药会不会发胖
十种主流电机拆解全解析:内部结构大揭秘!
川西适合几月份旅游
教师工资究竟处于什么水平?不同地区标准不一样,但结论出奇一致
FAE工程师的岗位职责
成功的学科交叉“奇点”哪里来
国内洗牙频率是否真的有必要?欧美已取消洗牙,你还需要每年洗一次吗?
Chrome是否支持跨平台游戏进度同步
你的手机号绑定了哪些平台?是否都是你本人的呢?
布氏杆菌病传播途径有哪些
前端程序员如何提升
“山”“海”“渔”“茶”,岚山弹奏特色民宿“交响曲”
经济学|市场失灵——市场机制的局限性
选择鼠标垫材质时应注意什么?哪种材质更适合游戏?
房屋承租人需要承担哪些责任和义务
小细胞肺癌五大治疗方案:3年总生存率提高2倍!
网站文章中如何正确注明原创作者和出处
情绪日记的魔力:引导孩子记录与反思情绪变化
地铁项目安全如何管理的
算法如何仿真
樱花绽放无果,揭秘花语中的生活哲理
龙姓的古老传说:御龙氏后裔与夏帝的赐姓
什么是指标对比法?指标对比法的原理是什么?这个原理在实际应用中有哪些注意事项?
如何构建协作部门制度
KOL合作如何提升品牌影响力与销量的有效策略探索
不费腿游重庆!这条山城徒步路线一定要收好
如何强化客户履约管理
想要眼睛年轻又明亮,试试10个小妙招,比眼药水管用多了!