SQL-запрос не выполняется - возвращает пустой набор - PullRequest
3 голосов
/ 15 марта 2012

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

Мой запрос:

SELECT * FROM wp_races_entry  WHERE date_in >=2012-02-08 && date_in<=2012-02-27

iтакже пытался

SELECT * FROM wp_races_entry WHERE date_in  BETWEEN 2012-02-08 AND 2012-02-27

У меня есть записи в таблице с датой 2012-02-14, но все равно он возвращает пустое значение.

Пожалуйста, помогите мне точно определить, что мне не хватает.

Ответы [ 3 ]

5 голосов
/ 15 марта 2012

2012-02-08 не дата, это целочисленное вычисление, которое дает результат 2002.Затем это косвенно приводится в дату, где 2002 означает 2002 days from the base date

Вместо этого используйте '2012-02-08', которая является строкой, которая также неявно приводится в дату, но ту, которую вы хотите.

SELECT * FROM wp_races_entry WHERE date_in BETWEEN '2012-02-08' AND '2012-02-27'
5 голосов
/ 15 марта 2012

Вам нужны цитаты вокруг ваших дат:

SELECT * FROM wp_races_entry WHERE date_in BETWEEN '2012-02-08' AND '2012-02-27'

Без кавычек ваши даты рассматриваются как арифметические выражения: 2012-02-08 = 2002.

Отправленный вами запрос эквивалентен следующему:

SELECT * FROM wp_races_entry WHERE date_in BETWEEN 2002 AND 1983
1 голос
/ 15 марта 2012

Попробуйте:

SELECT * FROM wp_races_entry WHERE date_in>= '2012-02-08 00:00:00' and date_in<= '2012-02-27 00:00:00'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...