MySQL 查询今天、昨天、本周、本月、上一月 、今年数据

参考链接:

https://www.cnblogs.com/winner-0715/p/6132838.html

一、查询天数据

1.查询今天数据

利用TO_DAYS函数

SELECT * FROM student 
WHERE TO_DAYS(Sage) = TO_DAYS(NOW())

注:

DATE_FORMAT(NOW(),'%Y-%m-%d')为一个日期,不能直接进行加减1操作。

  加减某个时间间隔函数date_add()与date_sub()

date_add('某个日期时间',interval 1 时间种类名);

2.查询明天的数据

SELECT * FROM student 
WHERE DATE_FORMAT(Sage,'%Y-%m-%d') = date_add(DATE_FORMAT(NOW(),'%Y-%m-%d'), interval 1 day)

3.查询昨天的数据:

SELECT * FROM student 
WHERE DATE_FORMAT(Sage,'%Y-%m-%d') = date_add(DATE_FORMAT(NOW(),'%Y-%m-%d'), interval -1 day)

二、查询周数据

利用函数week

 可以看到,返回了当前日期所在的周数,再进行匹配

1.查询本周数据

SELECT * FROM student 
WHERE WEEK(DATE_FORMAT(Sage,'%Y-%m-%d')) = WEEK(now())

2.查询下周数据

SELECT * FROM student 
WHERE WEEK(DATE_FORMAT(Sage,'%Y-%m-%d')) = WEEK(now())+1

三、查询月数据

SELECT *,DATE_FORMAT(Sage,'%m') s,DATE_FORMAT(now(),'%m') FROM student 

将月份取出,再进行匹配

1.查询本月数据

SELECT * FROM student 
WHERE DATE_FORMAT(Sage,'%m')= DATE_FORMAT(now(),'%m')

2.查询下月数据

SELECT * FROM student 
WHERE DATE_FORMAT(Sage,'%m')= DATE_FORMAT(now(),'%m')+1
SELECT * FROM student 
WHERE PERIOD_DIFF(DATE_FORMAT(NOW(),'%Y%m'), DATE_FORMAT(Sage,'%Y%m'))=-1

3.查询上月数据

SELECT * FROM student
WHERE period_diff(DATE_FORMAT(NOW(),'%Y-%m'),DATE_FORMAT(Sage,'%Y-%m'))=1

 四、查询年数据,与月同理

SELECT *,DATE_FORMAT(Sage,'%Y') s,DATE_FORMAT(now(),'%Y') FROM student 

 再进行匹配

如,我想查找30年前出生的人,将当前年份减去30

SELECT * FROM student 
WHERE DATE_FORMAT(Sage,'%Y') =DATE_FORMAT(now(),'%Y')-30

原文地址:https://www.cnblogs.com/jescs/p/12199543.html