选择上周的日期,但不仅仅是过去7天

时间:2013-05-10 21:33:51

标签: mysql date select

我想选择上周的所有日期。 但不是简单地计算当前日期 - 7,因为我遇到的所有帖子都表明了这一点。 这就是我现在为SUM实际拥有它的方式....

SELECT SUM(total) FROM payforms WHERE user_id = 1 GROUP BY WEEK(date)

这给了我一个很好的总数...... 但我想在上周检索所有个人记录。 所以我可以使用BETWEEN查询....但是如何在本周查看它。 例... 周二我希望它只能找到Sun,Mon,Tue的价值。 星期三,我希望它能找到周日,周一,周二,周三。 星期六它找到整个前一周。等

所以要更清楚...... 我不希望它在星期一的星期一找到。 星期一它应该只显示星期一,如果你理解我的意思。

我可以这样做吗?

由于

3 个答案:

答案 0 :(得分:1)

select * from payforms where yearweek(date) = yearweek(now());

虽然我认为MySQL周从周日开始

答案 1 :(得分:0)

您可以使用WEEKDAY日期函数,该函数返回一周的日期索引。

答案 2 :(得分:0)

如果我正确理解您的问题,您可以使用此查询:

SELECT   date, SUM(total)
FROM     payforms
WHERE    date >= CURDATE() - INTERVAL DAYOFWEEK(CURDATE())-1 DAY
GROUP BY date

请参阅小提琴here。 这将从上周日开始,计算当前每周每天的所有总数。如果你想在上周一开始,你可以使用它:

WHERE    date >= CURDATE() - INTERVAL WEEKDAY(CURDATE()) DAY