UnluckySerivelha
@UnluckySerivelha

Как написать такой SQL-запрос со сравнением дат?

Есть записи в базе данных о строительных объектах, у которых есть столбцы work_start_date и word_end_date, в которых хранятся даты начала и конца работы на объекте. Нужно сделать фильтр по диапазону дат, чтобы, например, по диапазону фильтра 15.09.2020 - 20.09.2020 выводились все объекты, работа на которых производилась в указанные в фильтре даты, даже если поле work_start_date в строке таблицы меньше, чем первое значение фильтра и поле work_end_date больше, чем второе значение фильтра.

То есть по фильтру 15.09.2020 - 20.09.2020 должны вывестись объекты с датами работ:
14.09.2020 - 18.09.2020
16.09.2020 - 18.09.2020
18.09.2020 - 21.09.2020

Есть ли возможность такое сделать? Натолкните, пожалуйста, в какую сторону искать, сам ничего не нашел
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Для начала надо переделать хранение дат в стандартный формат DATE, 2020-09-15.
После этого условие становится тривиальным
WHERE `work_start_date` <= :searchEndDate
  && `work_end_date` >= :searchStartDate
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы