MySQL从上周选择,而不仅仅是7天

时间:2016-10-20 00:52:36

标签: mysql

我正在尝试获取一个选择前一周(周日至周六)的查询。我已经与这个查询斗争了,我能得到的最接近的是过去7天,使用以下内容:

SELECT * 
 FROM dates 
 WHERE date BETWEEN CURDATE()-INTERVAL 1 WEEK AND CURDATE();

我真的不确定如何从这里开始。好像我需要在CURDATE()和星期六之间建立某种关系之前呢?

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

你是在一年之后的一周。

查看周功能:周(日期[,模式]) http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_week

该模式描述了如何定义周(这是一周的开始) 周(日期,3)是从星期一开始的一周。

SELECT * 
 FROM dates 
 WHERE 
-- Last Week
WEEK(date,3)  = WEEK(CURDATE(),3)-1 

AND YEAR(date)= YEAR(CURDATE())  ;

别忘了这一年。周只是1到52之间的数字。所以年份很重要! 上面的代码不正确。 它将在今年的最后一周失败!