Выбор данных из базы данных за эту неделю, кроме сегодняшнего дня

0

Мне нужна помощь с помощью простого запроса. Я хочу выбрать данные из таблицы, где дата находится на этой неделе, но мне не нужны записи, в которых установлена дата. Так что если сегодня понедельник, то я хочу только данные со вторника по пятницу.

Это была моя лучшая попытка.

SELECT * 
FROM data 
WHERE date > DATE_SUB(NOW(), INTERVAL 1 WEEK)

Как я могу улучшить это?

  • 0
    AND date != NOW() ?
  • 0
    Это выберет дату с этого момента, но я не хочу, чтобы она выбирала дату с сегодняшнего дня. Я хочу выбрать все данные за эту неделю, не выбирая сегодня. Поможет ли мне «И дата! = СЕЙЧАС ()»?
Показать ещё 3 комментария
Теги:

3 ответа

1
Лучший ответ

Вы можете использовать between и subdate

SELECT * FROM 'data' WHERE 'date'
BETWEEN SUBDATE(CURDATE(), 7) AND SUBDATE(CURDATE(), 1);
0

Вы можете использовать между собой и пойти один день назад с сегодняшнего дня.

SELECT * FROM data WHERE date BETWEEN DATE_SUB(NOW(), INTERVAL 1 WEEK) AND DATE_SUB(CURDATE(), INTERVAL 1 DAY)

Имейте в CURDATE() что я использовал CURDATE() вместо NOW() поскольку curdate содержит только дату без времени.

0

Вы хотите использовать CURDATE()

Функция CURDATE() возвращает текущую дату.

Примечание. Эта функция возвращает текущую дату в формате "ГГГГ-ММ-ДД", если используется в контексте строки, и в формате YYYYMMDD, если используется в числовом контексте.

И DATE()

Функция DATE() извлекает значение даты из выражения даты или даты и времени.

SELECT * FROM data WHERE date > DATE_SUB(NOW(), INTERVAL 1 WEEK) AND DATE(date) < CURDATE();

Это позволит эффективно превратить ваши данные в ГГГГ-ММ-ДД и сравнить их с ГГГГ-ММ-ДД

Ещё вопросы

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