在mysql中,可以利用select語句查詢近一週的數據,語法為「select * from table where DATE_SUB(CURDATE(), INTERVAL 7 DAY)
本教學操作環境:windows10系統、mysql8.0.22版本、Dell G3電腦。
語法如下:
select * from table where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(column_time);
#拓展知識:
##查詢一天:select * from table where to_days(column_time) = to_days(now()); select * from table where date(column_time) = curdate();查詢一個月:
select * from table where DATE_SUB(CURDATE(), INTERVAL INTERVAL 1 MONTH) <= date(column_time);
範例如下:
效果如圖(這裡SQL語句中的一週範圍是指星期一到星期日,星期一為一週的第一天,因是8月11日查詢的,所以只顯示星期一到星期六的結果):##日曆:
簡單來說就是用今天的日期產生前七天的日期(利用union all指令),並依照星期一的日期條件刷選出本週的日期
SELECT DATE(subdate(curdate(),date_format(curdate(),'%w')-1)) as thisweek union all SELECT DATE(DATE_ADD(subdate(curdate(),date_format(curdate(),'%w')-1), interval 1 day)) as thisweek union all SELECT DATE(DATE_ADD(subdate(curdate(),date_format(curdate(),'%w')-1), interval 2 day)) as thisweek union all SELECT DATE(DATE_ADD(subdate(curdate(),date_format(curdate(),'%w')-1), interval 3 day)) as thisweek union all SELECT DATE(DATE_ADD(subdate(curdate(),date_format(curdate(),'%w')-1), interval 4 day)) as thisweek union all SELECT DATE(DATE_ADD(subdate(curdate(),date_format(curdate(),'%w')-1), interval 5 day)) as thisweek union all SELECT DATE(DATE_ADD(subdate(curdate(),date_format(curdate(),'%w')-1), interval 6 day)) as thisweek
解析:
SELECT DATE(subdate(curdate(),date_format(curdate(),’%w’)-1))
得到的是這週的第一天(星期一到星期日為一週);也即8月6日
推薦學習:
mysql影片教學以上是mysql怎麼查詢近一週的數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!