0

我想选择上周内的所有日期。但不是简单地计算当前日期 - 7,正如我遇到的所有帖子所暗示的那样。这就是我现在实际拥有 SUM 的方式......

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

这给了我一个不错的总数......但我想在上周检索所有个人记录。所以我可以使用 BETWEEN 查询....但是我如何让它在本周查看。示例... 星期二我希望它只查找来自 Sun、Mon、Tue 的值。在星期三,我希望它找到 Sun、Mon、Tue、Wed。在星期六,它会找到整个前一周。ETC

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

我可以这样做吗??

谢谢

4

3 回答 3

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

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

于 2013-05-10T21:36:59.077 回答
0

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

于 2013-05-10T21:40:41.313 回答
0

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

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

在此处查看小提琴。这将从上周日开始对本周每一天的所有总数求和。如果你想让它在上周一开始,你可以使用这个:

WHERE    date >= CURDATE() - INTERVAL WEEKDAY(CURDATE()) DAY
于 2013-05-10T22:08:17.377 回答