嗨,我有一个已经具有自动递增日期时间列的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/

10-11 01:36
查看更多