comportamento incoerente MySQL DATEDIFF
Domanda
Quando uso questa domanda:
SELECT COUNT(*) FROM `my_table` WHERE DATEDIFF(NOW(), updated) > 2
MySQL esegue la query senza errori e ottengo il conteggio delle righe che non sono stati aggiornati negli ultimi 2 giorni. Tuttavia, se cambio la domanda in questo modo:
SELECT * FROM `my_table` WHERE DATEDIFF(NOW(), updated) > 2
ottengo il seguente errore:
#1305 - FUNCTION mydatabase.DATEDIFF does not exist
Tutte le idee perché questo è così?
Soluzione
Ho avuto un problema simile in cui non avrebbe funzionato solo su alcuni, se non avessi impostare il limite.
Prova a fare qualcosa di simile:
SELECT * FROM `my_table` WHERE DATEDIFF(NOW(), updated) > 2 LIMIT 0, 10
È rimasto corretto su un aggiornamento di MySQL. Provare ad aggiornare la propria versione di MySQL anche.
Altri suggerimenti
Verifica che non si dispone di uno spazio tra DATEDIFF
e (
staffa.
Forse si potrebbe anche provare SET sql_mode = "IGNORE_SPACE";
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow