Диапазон дат между диапазонами дат - PullRequest
0 голосов
/ 15 июня 2019

Я пишу SQL-запрос, в котором мне нужно найти результаты, находящиеся в диапазоне дат.

У меня есть четыре параметра OEFrom (сохранено в БД) OETo (сохранено в БД) To & From (предоставлено пользователем)).

Мой запрос похож на

select * from tblName where OEFrom>=From and To>=OETo

Проблема в том, что этот запрос работает, только когда To и From находятся между OEFrom и OETo.Если они лежат снаружи, это не возвращает результатов.Из моего понимания у меня есть 4 случая: * 1. OEFrom> From и OEToFrom и OETo> To 3. OEFromTo

Можно ли написать запрос, учитывая все эти случаи.

Ответы [ 2 ]

0 голосов
/ 15 июня 2019

Вы также можете проверить это-

SELECT * 
FROM your_table
WHERE OEFrom BETWEEN [From] AND [To]  
AND OETo BETWEEN [From] AND [To]  
0 голосов
/ 15 июня 2019

Если вы хотите какое-либо перекрытие, используйте эту логику:

select *
from tblName
where OEFrom <= To AND
      OETo >= From;

Два диапазона перекрываются, если каждый начинается до конца другого (или в этом случае, до или до того, если вы хотите включить конечные точки).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...