Как отфильтровать данные за последнюю неделю в определенный день

0

Привет, У меня есть база данных MySQL, у которой уже есть автоматическое добавление даты colomn (может помочь информация).

Как фильтровать последние данные за неделю, начиная с определенного дня до следующего 7 дня.

пример. Показывать данные со среды на этой неделе до гнезда 7 дней

$query="SELECT * FROM diagnosa WHERE schedule= '$a'";

$ a - начальный день, когда данные начинают отображаться (пример в среду)

  • 3
    столбцы даты / времени не увеличиваются автоматически, поэтому ваш вопрос не имеет смысла. Образцы данных и желаемые результаты всегда помогают.
  • 0
    @GordonLinoff Спасибо. Я пытаюсь исправить этот вопрос
Теги:
date

1 ответ

0

Это может помочь вам...

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

  • 0
    Можем ли мы изменить start_date на особый день? Потому что каждую неделю данные на этой неделе должны быть показаны
  • 0
    Ооо тебе нужно со среды. Ниже приведен запрос SELECT * FROM таблицы WHERE date_colunm между (СЛУЧАЙ, КОГДА DAYOFWEEK (curdate ())> 4 THEN DATE_SUB (NOW (), INTERVAL (7-DAYOFWEEK (curdate ())) DAY) Иначе (CASE WHEN DAYOFWEEK (curdate () ) <4 THEN DATE_ADD (NOW (), INTERVAL (4-DAYOFWEEK (curdate ())) DAY) ELSE curdate () END) END) как дата и DATE_ADD ((СЛУЧАЙ, КОГДА DAYOFWEEK (curdate ())>> 4 THEN DATE_SUB ( NOW (), INTERVAL (7-DAYOFWEEK (curdate ())) DAY) ELSE (СЛУЧАЙ, КОГДА DAYOFWEEK (curdate ()) <4 THEN DATE_ADD (NOW (), INTERVAL (4-DAYOFWEEK (curdate ())) DAY) curdate () END) END) в качестве даты, ИНТЕРВАЛ 6 ДНЯ)
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню