我想选择最近一周内的所有日期。但不是简单地计算当前日期——7,就像我看到的所有帖子建议的那样。这就是我现在为SUM设置的方式....
SELECT SUM(total) FROM payforms WHERE user_id = 1 GROUP BY WEEK(date)
这给了我一个不错的总数…但我想检索过去一周内的所有个人记录。所以我可以使用BETWEEN查询....但我该如何让它在本周看起来呢?例子……星期二,我希望它只找到Sun, Mon, Tue的值。在周三,我希望它能找到Sun, Mon, tuesday, wednesday。星期六,它找到了前一周的全部。等
所以更清楚....我不想让它在上周一找到。在星期一,它应该只显示星期一,如果你明白我的意思。
我可以这样做吗?
谢谢
select * from payforms where yearweek(date) = yearweek(now());
虽然我认为MySQL周从周日开始
您可以使用WEEKDAY date函数,它返回一周的日期索引。
如果我正确理解了你的问题,你可以使用这个查询:
SELECT date, SUM(total)
FROM payforms
WHERE date >= CURDATE() - INTERVAL DAYOFWEEK(CURDATE())-1 DAY
GROUP BY date
请参阅此处。这将从上星期日开始计算当前一周每天的总金额。如果你想让它从上周一开始,你可以这样写:
WHERE date >= CURDATE() - INTERVAL WEEKDAY(CURDATE()) DAY