mysql将某一个月所有天数构造出来

本文介绍了如何使用MySQL中的DAY(),LAST_DAY(),STR_TO_DATE()和ADDDATE()函数来生成2023年9月每一天的日期,通过UNIONALL操作和ADDDATE()计算出该月每一天的日期范围。
摘要由CSDN通过智能技术生成

写项目时会遇到统计某个月每一天数据的场景

mysql可以将某个月的所有日期构造出来

DAY()函数:返回给定日期的月份的日期部分

LAST_DAY()函数:返回某个月最后一天的日期

STR_TO_DATE()函数:将字符串格式转换成日期格式

ADDDATE()函数:将指定的日期值添加到现有日期上,并返回结果




SELECT ADDDATE(month.firstDay, days.day - 1) as result
FROM
    (SELECT 1 AS day 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 UNION ALL SELECT 10 UNION ALL SELECT 11 UNION ALL SELECT 12 UNION ALL SELECT 13 UNION ALL SELECT 14 UNION ALL
    SELECT 15 UNION ALL SELECT 16 UNION ALL SELECT 17 UNION ALL SELECT 18 UNION ALL SELECT 19 UNION ALL SELECT 20 UNION ALL SELECT 21 UNION ALL
    SELECT 22 UNION ALL SELECT 23 UNION ALL SELECT 24 UNION ALL SELECT 25 UNION ALL SELECT 26 UNION ALL SELECT 27 UNION ALL SELECT 28 UNION ALL
    SELECT 29 UNION ALL SELECT 30 UNION ALL SELECT 31) days,
    (SELECT '2023-09-01' as firstDay, DAY(LAST_DAY(str_to_date('2023-09-01','%Y-%m-%d'))) AS dayNum) month
WHERE days.day <= month.dayNum

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值