1

このクエリを使用すると:

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

これがなぜそうなのか、何か考えはありますか?

4

2 に答える 2

3

DATEDIFFと ブラケットの間にスペースがないことを確認します(

おそらくあなたも試すことができますSET sql_mode = "IGNORE_SPACE";

このバグレポートも確認してください。

于 2009-11-20T14:51:21.903 に答える
2

LIMITを設定しないと、SELECTで機能しないという同様の問題が発生しました。

次のようなことを試してください。

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

MySQLのアップデートで修正されました。MySQLのバージョンも更新してみてください。

于 2009-11-20T14:57:14.250 に答える