Mysql запрос даты, чтобы найти, если текущий в течение двух дат? - PullRequest
1 голос
/ 19 января 2010

В моей таблице есть два поля: start_date и end_date.Я просто пытаюсь получить строки, где текущая дата находится между начальной и конечной датами.По какой-то причине я не получаю это вообще.Я пробовал использовать между, но я продолжаю получать пустые наборы, хотя я знаю, что существуют записи, которые существуют ... Я не думаю, что я думаю об этом ясно ... Кто-нибудь знает, как это сделать?

Ответы [ 2 ]

3 голосов
/ 19 января 2010
SELECT  *
FROM    mytable
WHERE   SYSDATE() BETWEEN start_date AND end_date

Убедитесь, что ваши start_date и end_date равны DATE или DATETIME, а не VARCHAR.

0 голосов
/ 19 января 2010

Вот еще один способ сделать это без использования BETWEEN:

WHERE @date >= start_date AND @date <= end_date

Это должно быть эквивалентно.

Также обратите внимание, что часто то, что вы действительно хотите, этополуоткрытый интервал:

WHERE @date >= start_date AND @date < end_date

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

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