Mysql查询某个时间段数据,近7天,近一个月等数据

查询某个时间段的数据常用的方式有

//查询2020-09-18当天 
SELECT * FROM t_user WHERE created_time between '2020-09-18 00:00:00' and '2020-09-18 23:59:59' 

//查询2020-09-18当天 
SELECT * FROM t_user WHERE year(created_time ) = 2020 and month(created_time )= 09 and day(created_time ) = 18
 
//查询2020-09-17 00:00:00至 2020-09-19 00:00:00
SELECT * FROM t_user WHERE created_time > '2020-09-17' and created_time < '2020-09-19'
 
 //查询2020-09-18当天 
SELECT * FROM t_user WHERE ( datediff ( created_time , '2020-09-18' ) = 0 )

mysql还另外提供的方式还有

//今天
select * from 表名 where to_days(时间字段) = to_days(now());
 
//昨天,前某一天数据直接更改日期差值的结果即可,例如查询前天,差值为2
SELECT * FROM 表名 WHERE DATEDIFF(时间字段,NOW())=-1;
 
//本周
SELECT * FROM 表名 WHERE YEARWEEK(date_format(时间字段,'%Y-%m-%d')) = YEARWEEK(now());
 
//上周,同理近几周直接更改对应的周数差值即可
SELECT * FROM 表名 WHERE YEARWEEK(date_format(时间字段,'%Y-%m-%d')) = YEARWEEK(now())-1;
 
//近7天
SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段)

//近30天,同理近多少天直接更改对应的天数即可
SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(时间字段)
 
//本月
SELECT * FROM 表名 WHERE DATE_FORMAT( 时间字段, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
 
//上月,同理近几个月直接更改对应的月数差值即可
SELECT * FROM 表名 WHERE PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format( 时间字段, '%Y%m' ) ) =1
 
//本季度 
select * from 表名 where QUARTER(时间字段)=QUARTER(now());
 
//上季度,同理上上季度(2),上上上季度(3),直接更改季度数值
select * from 表名 where QUARTER(时间字段)=QUARTER(DATE_SUB(now(),interval 1 QUARTER));
 
//本年
select * from 表名 where YEAR(时间字段)=YEAR(NOW());
 
//去年,同理前年,大前年更改年数即可,前年为2,同理大前年为3
 elect * from 表名 where year(时间字段)=year(date_sub(now(),interval 1 year));

猜你喜欢

转载自blog.csdn.net/qq_42301302/article/details/108668013