2012-01-23 1 views
-1
$sql = mysql_query("SELECT * FROM users WHERE TO_SECONDS(NOW())-TO_SECONDS(TS) <= 604800 "); 

TS - это временная марка столбца. 604800 - это время в секундах 7 дней.mysql запрос, работающий на окнах, не на linux

Этот запрос отлично работает локально на окнах, но когда я загружаю его на сервер Linux, он перестает работать.

Может кто-то, пожалуйста, помогите мне?

+0

Вы уверены, что основная проблема заключается в запросе? Можете ли вы проверить его на панели команд mysql? – Eray

+0

Вы можете уточнить, что не работает? –

+1

'перестает работать' не является объяснением. У вас установлен mysql? – zerkms

ответ

1

TO_SECONDS существует только в версии SQL> = 5.5, проверьте, какая версия у вас есть в Linux. В большинстве случаев версия с вашим дистрибутивом устарела.

Решение без обновления здесь: Emulating TO_SECONDS() in older versions of MySQL (<5.5.0)

+0

Но TO_SECONDS AND TIME_TO_SEC совершенно разные. Но поскольку старый запрос выполнялся на окнах, а не на linux, функция высказывания не выходит. Поэтому я тоже думаю, что это была проблема с версией. Я понял, я немного изменил запрос. $ sql = mysql_query ("SELECT COUNT (*) FROM tlb_users ГДЕ TIME_TO_SEC (TIMEDIFF (NOW(), TS)) <= 604800"); – RIK

0

MySQL чувствителен к регистру, когда он работает на Linux, и никогда при запуске на Windows, (иногда?). Возможно, TS имеет другой случай?

Возможно, я ошибаюсь, это может повлиять только на имена таблиц, но у меня есть опыт этой проблемы раньше.

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