Как выбрать из базы текущую дату + 5 дней в SQL?

Здравствуйте господа!

Подскажите, пожалуйста.
Необходимо выбрать только тех пользователей, кто записан на приём на 5 дней вперёд.

Вот сам запрос:

SELECT patients.fio, patients.number_phone, 
    appointment.date_of_appointment, 
    appointment.time_of_appointment 
    FROM appointment
    INNER JOIN patients 
    WHERE DATE_ADD(CURDATE(), INTERVAL 5 day) >= appointment.date_of_appointment
    AND patients.user_id = appointment.user_id;

Но выводятся все записи, которые и старше и младше текущей даты.

Как правильно построить запрос чтобы показывались записи по принципу текущаяДата + 5 дней?
Спасибо.
  • Вопрос задан
  • 544 просмотра
Решения вопроса 1
DS28
@DS28
Аналитик (недоматематик, недопрограммист)
Ну всё же правильно делаете)) Но не до конца.

CURDATE+5 больше, чем date_of_appointment
Это значит date_of_appointment меньше чем CURDATE+ 5.

А как же отсечь прошедшие дни? Нужно ещё date_of_appointment > CURDATE
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@d-stream
Готовые решения - не подаю, но...
Ну так условие-то, если его более тщательно выразить словами, должно звучать как
"находящиеся между текущей датой и датой на 5 дней больше"

то есть как минимум два сравнения или between

p/s/ обычно удобнее оперировать чем-либо типа datediff - есть разницей в днях и там более явно видно что надо "от нуля до 5 дней"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы