如何使用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月的所有日期。
运行效果
热门推荐
张角三兄弟领导的黄巾起义为什么会失败?因为黄巾军犯了3个错误
墙改梁施工过程中的混凝土浇筑质量控制要点
胆汁反流性胃炎是什么病,能治愈吗
工伤发生后多长时间能去做劳动能力鉴定
工伤认定完要拆完钢板才能鉴定等级吗
皮肤上有痣立马点掉?或承担着3类风险!
4k显示器对显卡的要求 4k显示器配什么显卡介绍
员工工伤住院陪护费标准
物理学的四大基本力
历史上真实的袁崇焕:以辩证的眼光审视其功过
历史上真实的袁崇焕:以辩证的眼光审视其功过
海贼王艾斯,路飞,萨博这三位的兄弟情,应该无人不知吧!
创业板市场发展现状及未来趋势分析
“近视神药”来了?专家提示:千万别给孩子乱用
2025年制氢行业深度分析报告:千亿级市场加速扩容 产业链降本迫在眉睫
单位集资房子可以办理房产证吗
财务造假退市设置较高门槛值得商榷
如何把握国际现货黄金价格的变化?这种价格变化如何影响全球黄金市场?
中国汽车市场变革:消费者的理性正在回归
我买什么股票都跌,怎么能选到上涨的股票?
走进中国酒谷|去湘西,感受白酒里的中国哲学
2025年常州交通发展大动作:高速、快速路、过江通道全面推进
笔记本电脑7大分类总结:从游戏本到上网本,总有一款适合你
喝中药加点什么不会那么苦 巧服中药让你少苦口
开源团队如何盈利:八大模式详解与案例分析
水痘是怎样的疾病(上)?
债权类资产包括哪些基金:全面解析与法律视角分析
芦荟生长的环境与特点(探寻芦荟最适宜的生长地点)
犯罪退赃退给谁了
绥化的美食有哪些?