Вопрос

Когда я использую этот запрос:

SELECT COUNT(*) FROM `my_table` WHERE DATEDIFF(NOW(), updated) > 2

MySQL выполняет запрос без ошибок, и я получаю количество строк, которые не были обновлены в течение последних 2 дней.Однако, если я изменю запрос следующим образом:

SELECT * FROM `my_table` WHERE DATEDIFF(NOW(), updated) > 2

Я получаю следующую ошибку:

#1305 - FUNCTION mydatabase.DATEDIFF does not exist

Есть какие-нибудь идеи, почему это так?

Это было полезно?

Решение

У меня была похожая проблема, когда это не сработало бы при ВЫБОРЕ, если бы я не установил ОГРАНИЧЕНИЕ.

Попробуйте сделать что-то вроде:

SELECT * FROM `my_table` WHERE DATEDIFF(NOW(), updated) > 2 LIMIT 0, 10

Это было исправлено при обновлении MySQL.Попробуйте также обновить свою версию MySQL.

Другие советы

Убедитесь, что у вас нет пробела между DATEDIFF и скобка (.

Возможно, вы также могли бы попробовать SET sql_mode = "IGNORE_SPACE";

Также проверьте это багрепорт.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top