MySQL七天以内_mysql常用时间列表的查询——七天内、本月、本周、某天

本文介绍了在MySQL中如何查询最近七天、本周和本月的日期列表,用于数据统计时填充缺失时间段。通过利用help_topic表生成临时表,结合UNION和LEFT JOIN解决日期缺失问题,确保图表展示完整。
摘要由CSDN通过智能技术生成

在mysql用分组查询做统计时,时常会遇到这样的场景——需要查询一段时间内数据统计,并按一定的时间分组查出。分组查询的sql可能很快就写出来了,但当执行后却发现,由于某个时间段没有数据,导致输出结果的时间段缺失。

如下图,本意是想查询当月各天的金额统计,但由于数据缺失,导致查询结果只有部分天数输出。这个输出单纯地对于后台来说可能是没有什么问题,但要前端将它展示成图表那可就不行了!

要想做到按时间段分组输出且不丢失数据,单纯只是对原表操作是不行的,最起码也需要通过SELECT语句来生出些临时表作连接,才能达到以上目的。除此之外,还需要额外创建个含有31行数据辅助表。在此,我偷了个小懒,直接地使用了mysql的help_topic表做为辅助表。以下将展示几种常见地的查询时间段列表的方法。

最近七天的日期列表

SELECT @s :[email protected] + 1 as `index`, DATE(DATE_SUB(CURRENT_DATE, INTERVAL @s DAY)) AS `date`

FROM mysql.help_topic,(SELECT @s := -1) temp

WHERE @s < 6

ORDER BY `date`

一天24小时查询(0 - 23)

SELECT @d := @d + 1 `hour`

FROM mysql.help_topic,(SELECT @d := -1) temp

WHERE @d < 23

ORDER BY `hour&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值