所以我想选择本周记录的所有行。
例如。今天是2019年1月30日,也就是周三。我想选择从周一(2019年1月28日)到周三(今天)的所有行。当明天到来时,周四添加的行也将被选中。
这将持续到星期天。当下一个星期的星期一到来时,它将只选择在该星期一记录的行。(2019年2月4日)等等。
我只需要(本周)的数据,而不是过去7天的数据。

I have a dateadded column

-----------------------------
Firstname|Lastname|dateadded
Michael  |Jordan  |2019-02-03       <-(Feb 3, 2019)
Mark     |Perez   |2019-01-30
Paul     |George  |2019-01-28
John     |Wayne   |2019-01-25
-----------------------------

只选择本周添加数据的查询。
马克·佩雷斯和保罗·乔治在今天的同一周。
select * from names WHERE  YEARWEEK(`dateadded`, 1) = YEARWEEK(CURDATE(), 1)

将只选择当前日期的最后7天。

最佳答案

好吧,您可以使用WEEKDAY()获取一周内当前日期的日数,如果从当前日期开始,则使用susbstract:

SELECT SUBDATE(CURDATE(), WEEKDAY(CURDATE()))

产量:
2019-01-28

Demo on DB Fiddle
正如Nick所评论的,下面是一个使用上述方法筛选表的查询示例:
SELECT t.*
FROM test t
WHERE t.idate >= SUBDATE(CURDATE(), WEEKDAY(CURDATE()))
ORDER BY t.idate

Demo on DB Fiddle

关于mysql - 仅获取一周中第一天到一周中当前日期的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54488314/

10-11 14:06