Questo codice funziona:(nota che lo spazio viene rimosso dopo "CAST")
SELECT CAST(20091023 as date);
Si scopre che MySQL richiede che un elenco specifico di funzioni integrate non abbia spazi tra il nome della funzione e le parentesi. Vedi questa pagina nel Manuale MySQL per ulteriori informazioni sul motivo per cui esiste questo comportamento.
Il seguente elenco di funzioni ha la stessa restrizione in MySQL 5.1 (ce ne sono molte altre nelle versioni precedenti):
ADDDATE
BIT_AND
BIT_OR
BIT_XOR
CAST
COUNT
CURDATE
CURTIME
DATE_ADD
DATE_SUB
EXTRACT
GROUP_CONCAT
MAX
MID
MIN
NOW
POSITION
SESSION_USER
STD
STDDEV
STDDEV_POP
STDDEV_SAMP
SUBDATE
SUBSTR
SUBSTRING
SUM
SYSDATE
SYSTEM_USER
TRIM
VARIANCE
VAR_POP
VAR_SAMP
Spero che questa risposta ti aiuti a evitare di perdere la stessa quantità di tempo che ho fatto io con questo! :-)