Как выбрать дату сегодня из каждого дня, который имеет между датами? - PullRequest
2 голосов
/ 31 октября 2019

У меня проблема с данными, которые я хочу отобразить. В основном у меня есть эта таблица.

history_table:

| history_date_from | history_date_to |
+-----------------+---------------+
| 2019-10-12      | 2019-10-12    |
| 2019-10-25      | 2019-10-28    |
| 2019-11-18      | 2019-11-22    |
| 2019-11-19      | 2019-11-25    |
| 2019-11-20      | 2019-11-20    |

Проблема в том, что если сегодня уже 2019-11-19. Я все еще хочу показывать третью строку до тех пор, пока 2019-11-22.

Вот мой текущий запрос:

SELECT history_date_from,history_date_to
FROM history_table
WHERE DATE(history_date_from)= CURDATE() BETWEEN DATE(history_date_from) AND DATE(history_date_to)

Но проблема моего запроса в том, что он будет зависеть только от CURDATEиз history_date_from я пытаюсь получить третью строку на завтра, пока конец даты не будет зависеть от history_date_to.

Так что если сегодня 2019-11-19, то вывод долженbe:

| history_date_from | history_date_to |
| 2019-11-18      | 2019-11-22    |
| 2019-11-19      | 2019-11-25    |

, потому что history_date_to все еще не сделано с точки зрения даты.

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

1 Ответ

0 голосов
/ 31 октября 2019

Вы можете использовать следующее решение, используя BETWEEN:

SELECT * 
FROM history_table
WHERE CURDATE() BETWEEN history_date_from AND history_date_to

демо на dbfiddle.uk

Вы не делаетенужно проверить точное совпадение на history_date_from. Вы хотите знать, относится ли текущая дата к определенному периоду времени. Так что BETWEEN - хороший путь.

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