mysql查询今天、昨天、7天、近30天、本月、上一月 数据

本文详细介绍如何使用SQL查询特定时间段的数据,包括当前时间、今日、昨日、最近一周及特定日期后的七天数据。同时,提供了补全缺失日期并填充0值的方法,确保数据连续性。

获取当前时间

CURTIME();

查询今天的数据

select * from table where to_days(time) = to_days(now())

查询昨天数据

select * from error where to_days(now())-to_days(alarmtime)=1

查询最近一个星期数据

select * from error where to_days(now())-to_days(alarmtime)<=7

SELECT * FROM error where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(alarmtime)

查询某天后一个星期的数据

SELECT * FROM error where DATE_ADD('2018-12-13', INTERVAL 7 DAY)

以上查询语句若有一天没有数据就没有那一天的显示

要想每天都显示 空的补0 可以用下面的sql 

构建一个最近七天的结果集,然后和查询的结果集合做left join

select a.click_date,ifnull(b.count1,0)as count1 from (
SELECT curdate() as click_date
union all SELECT date_sub(curdate(), interval 1 day) as click_date
union all SELECT date_sub(curdate(), interval 2 day) as click_date
union all SELECT date_sub(curdate(), interval 3 day) as click_date
union all SELECT date_sub(curdate(), interval 4 day) as click_date
union all SELECT date_sub(curdate(), interval 5 day) as click_date
union all SELECT date_sub(curdate(), interval 6 day) as click_date ) a
left join ( select date(alarmtime) as datetime, count(*) as count1 from error  where type=1 group by date(alarmtime) ) b on a.click_date = b.datetime

 

转载于:https://www.cnblogs.com/liangb/p/10144133.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值