2012-05-22 5 views
0

У меня проблема с блокировкой с моей mysql dabatase.MySql Дата между: странное поведение

У меня есть сайт php с базой данных MySql. Все работает нормально.

Я просто поставить SQL дамп от одного старого сервера базы данных на новый сервер базы данных и так, на этом новом сервере У меня есть странное поведение:

запрос типа:

select * from toto where date(myDateField) between '2001-01-01' and '2012-01-01'; 

не ли Работа. Я имею в виду, что он не возвращает никаких результатов (ошибок нет).

Если я сделать следующее:

select * from toto where myDateField between '2001-01-01' and '2012-01-01'; 

Он работает.

Я попытался посмотреть, есть ли на моем новом сервере переменные системы mysql разные, но все кажется одинаковым. Странно то, что на этом новом сервере я на прошлой неделе положил еще одну дампу, и все сработало нормально. Теперь я понятия не имею.

Я не могу изменять и изменять все мои php-файлы, так как сайт отлично работает на других серверах. Я просто хочу найти проблему и объяснение.

У кого-нибудь есть намек на это?

ОБНОВЛЕНО:

Я сделал больше тестов. У меня есть 2 базы данных на одном сервере. На первом (создан старый дамп) все в порядке. На втором (созданном с использованием недавнего файла дампа) у меня есть проблема.

Так что я действительно не знаю, в чем проблема.

+0

Каков тип данных 'myDateField'? –

ответ

0

Сначала проверьте, какой формат делать и получить на сервере

select date(myDateField) from toto 

на основе использования формата между условием ... формат даты может изменить форму сервера к серверу т.е. дд // мм // гггг или yy // mm/dd проверить, что ....

+0

Я сделал то же и на обоих серверах. Я проверил даже в системных переменных mysql: тот же параметр. –

+0

SELECT * FROM toto, где DATE_FORMAT (myDateField, '% Y-% m-% d') между '2001-01-01' и '2012-01-01'; попробуйте это – vijaykumar

+0

С date_format он работает. Итак, что я должен изменить на своем сервере? –

0

Мне, наконец, удалось заставить его работать. Я установил один и тот же дамп в другом дистрибутиве Linux, и теперь он работает. Раньше у меня был Gentoo, и теперь у меня есть Ubuntu. Так должно быть что-то не так на Gentoo.

Смежные вопросы