Попытка использовать условие BETWEEN для возврата строк на основе даты, но безрезультатно - PullRequest
1 голос
/ 13 января 2012

У меня есть база данных, содержащая список событий, она отформатирована примерно так:

  Datef        Event        Location       Discipline
10/01/2012  MG Training    Brooklands          MG

Я выполняю этот запрос для получения результатов между определенными датами:

SELECT * FROM events WHERE Discipline IN ('MG') AND Datef BETWEEN 01/01/2012 AND 31/01/2012

Запрос выполняется правильно, и я знаю, что в базе данных есть релевантные результаты, но я не получаю результатов при выполнении запроса в phpmyadmin (мне просто говорят «Ваш SQL-запрос был успешно выполнен»).

Мне было интересно, кто-нибудь имел представление, почему это не будет возвращать результаты?

Обновление: Ввод даты в кавычках (например, SELECT * FROM events WHERE Discipline IN ('MG') И Datef МЕЖДУ 01.01.2012 И 31.01.2012) вроде работает, но есть ошибка.У меня есть определенные даты не работает.например,

SELECT * FROM events WHERE Discipline IN ('COMM') AND Datef BETWEEN '2012-02-01' AND '2012-02-29'
не показывает результатов, даже если в 2010-02-01 есть событие.Это особенность алгоритма МЕЖДУ или я все еще неправильно понимаю свой запрос?

Ответы [ 4 ]

1 голос
/ 14 января 2012

Без кавычек или чего-либо другого, обозначающего эти значения как даты, он просто выполнит математические вычисления с целыми числами, которые вы написали.

Другими словами, вы просите

 BETWEEN 01/01/2012 AND 31/01/2012

Таким образом, вы получаете 1/1 = 1, затем 1/2012, что почти равно 0.

Затем вы делаете 31/1 = 31, затем 31/2012, что также почти равно 0.

Так становится

BETWEEN 0 and 0
0 голосов
/ 14 января 2012
SELECT
    *
FROM
    `events`
WHERE
    `Discipline` IN ('MG')
AND
    `Datef` BETWEEN '2012-01-01' AND '2012-01-31'
0 голосов
/ 13 января 2012

Ваш столбец Datef имеет неправильный тип и должен быть datatime

0 голосов
/ 13 января 2012

Попробуйте обернуть ваш код strtotime ().MySQL и PHP используют различное форматирование.

Для получения дополнительной информации, вот несколько ссылок:

http://www.richardlord.net/blog/dates-in-php-and-mysql http://www.binarytides.com/blog/parse-and-format-dates-between-php-and-mysql/

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