Как получить данные между диапазоном дат в sql - PullRequest
0 голосов
/ 08 октября 2019

Мне нужно выбрать записи между датами:

enter image description here

Если я введу BeginDate как 5 / Jan / 2019 18:40:00 и EndDateв 25 / Jan / 2019 18:40:00 тогда должны быть выбраны обе строки.

Другой пример ... BeginDate и EndDate записи соответственно 1 / Jan / 2019 и 31 / Jan / 2019. Если я введу 5 / Jan / 2019 и 25 / Jan / 2019, то эта запись должна быть выбрана.

Возможно, я введу какие-нибудь даты между фактическим Begindate и EndDate записей, которые должны быть выбраны.

Я использовал между ними, но он выбирал записи, имеющие точные значения даты.

BeginDate >= @BeginDate 
and BeginDate <= dateadd(day, 1, @EndDate)
and (EndDate is null or EndDate> @EndDate)

Может кто-нибудь помочь мне исправить это.

1 Ответ

1 голос
/ 08 октября 2019

Исходя из ваших отзывов, вам необходим простой запрос на перекрытие даты:

SELECT *
FROM t
WHERE @EndDate   > BeginDate
AND   @BeginDate < EndDate

Он будет соответствовать строкам, в которых Start и EndDate пересекаются с @Start и @EndDate в любым способом. ,Предполагается, что даты окончания являются эксклюзивными. Возможно, вы захотите добавить (... OR EndDate IS NULL) для обработки нулевых значений.

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