所以我想选择本周记录的所有行。
例如。今天是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/