2013-05-21 3 views
0

Ниже мой запрос sql в php.Ошибка анализа в DATEDIFF php

SELECT * FROM Tbl_Players I WHERE DATEDIFF(DAY , NOW() , I.FirstLoginTime) <1 LIMIT 0 , 30 

FirstLoginTime - это поле в таблице sql, которое имеет значение DateTime.

Я хочу, чтобы все данные вставили до одного дня.

Это дает мне ошибку:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' I.FirstLoginTime) &lt; 1 
LIMIT 0, 30' at line 3 

благодарность за помощь.

+0

DATEDIFF принимает 2 аргумента, вы передаете его 3 –

+0

Как я мог знать, если разница в день или час что-то другое , – Impossible

+1

что случилось с результатом при удалении * DAY, *? –

ответ

3

Как мне известно, функция DATEDIFF в MySQL принимает два аргумента, вы можете проверить его на этой link

И вы имеете в виду Sql-сервер прямо сейчас, который принимает три аргумента, но в MySQL это не ,

Так что, если вы будете писать, как следовать, он не будет давать ошибку

SELECT * FROM Tbl_Players I WHERE DATEDIFF( NOW() , I.FirstLoginTime) <1 LIMIT 0 , 30 
+1

не будет функцией mysql в руководстве mysql, а не в руководстве по php? Также w3schools полны опасной * дерьмо * не ссылайтесь на нее здесь –

+0

лучше ссылаться на фактическое руководство/документы - ['DATEDIFF (expr1, expr2)'] (http://dev.mysql.com/doc/refman /5.1/en/date-and-time-functions.html#function_datediff) http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_datediff – Sean

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