используя sql, чтобы выбрать два разных диапазона дат в базе данных для красного смещения - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть коды, как показано ниже:

select date
from date_table
where date between '2019-05-01' and '2019-07-31'
and date between '2020-05-01' and '2020-07-31'

, но когда я запускаю приведенный выше код, он не показывает строк для отображения, несмотря на то, что я запускаюсь успешно, используя только

select date
from date_table
where date between '2019-05-01' and '2019-07-31'

Кто-нибудь знает почему?

1 Ответ

1 голос
/ 14 апреля 2020

Предположительно, вы хотите OR эти два диапазона дат:

SELECT date
FROM date_table
WHERE
    date BETWEEN '2019-05-01' AND '2019-07-31'
    OR
    date BETWEEN '2020-05-01' AND '2020-07-31';

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

В качестве примечания: если вы хотите включить 1 мая 2019 года включительно до 31 июля 2019 года включительно (с аналогичными логинами c и в другом диапазоне), то вы следует использовать неравенства:

SELECT date
FROM date_table
WHERE
    date >= '2019-05-01' AND date < '2019-08-01'
    OR
    date >= '2020-05-01' AND date < '2020-08-01';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...