嗨,我有一个已经具有自动递增日期时间列的MySQL数据库(可能有帮助)。
如何过滤从特定日期开始到下一个7天的最后一周的数据。
例。显示从本周三到巢7天的数据
$query="SELECT * FROM diagnosa WHERE schedule= '$a'";
$ a是开始显示数据的开始日期(例如星期三)
最佳答案
这可能对您有帮助...
SELECT *
FROM table
WHERE date_colunm between 'start_date' AND DATE_ADD("start_date", INTERVAL 7 DAY);
更新:
根据需要,从星期三开始。请在下面查询我们
SELECT *
FROM table
WHERE date_colunm
between (
CASE
WHEN DAYOFWEEK(curdate()) > 4
THEN DATE_SUB(NOW(), INTERVAL (7-DAYOFWEEK(curdate())) DAY)
ELSE (
CASE
WHEN DAYOFWEEK(curdate()) < 4
THEN DATE_ADD(NOW(), INTERVAL (4-DAYOFWEEK(curdate())) DAY)
ELSE curdate()
END
)
END
) as date
AND DATE_ADD (
(
CASE
WHEN DAYOFWEEK(curdate()) > 4
THEN DATE_SUB(NOW(), INTERVAL (7-DAYOFWEEK(curdate())) DAY)
ELSE (
CASE
WHEN DAYOFWEEK(curdate()) < 4
THEN DATE_ADD(NOW(), INTERVAL (4-DAYOFWEEK(curdate())) DAY)
ELSE curdate()
END
)
END
) as date, INTERVAL 6 DAY
)
注意 :
有一些代码,例如星期三,我们有4(如查询中所述),
因此您可以根据自己的要求更改代码。像星期一是:2
关于php - 如何在特定日期过滤上一周的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49706997/