我正在尝试获取一个选择前一周(周日至周六)的查询。我已经与这个查询斗争了,我能得到的最接近的是过去7天,使用以下内容:
SELECT *
FROM dates
WHERE date BETWEEN CURDATE()-INTERVAL 1 WEEK AND CURDATE();
我真的不确定如何从这里开始。好像我需要在CURDATE()
和星期六之间建立某种关系之前呢?
感谢任何帮助。
答案 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之间的数字。所以年份很重要! 上面的代码不正确。 它将在今年的最后一周失败!