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ì?

È stato utile?

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";

bugreport .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top