参考链接:
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