參考鏈接:
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