سؤال

عندما أستخدم هذا الاستعلام:

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

يقوم MySQL بتنفيذ الاستعلام بدون أخطاء وأحصل على عدد الصفوف التي لم يتم تحديثها خلال اليومين الأخيرين. ومع ذلك ، إذا قمت بتغيير الاستعلام مثل هذا:

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