在MySQL 5.1中,为什么这个SQL不能正常工作?
SELECT CAST (20091023 as date);
[我自己刚刚想出了这个问题的答案 - 我将在下面自己回答 - 但是这种行为太奇怪了,我想将它作为StackOverflow Q& A对捕获所以其他人不会在同样的问题上浪费时间。]
答案 0 :(得分:3)
此代码有效:(注意“CAST”后删除空格)
SELECT CAST(20091023 as date);
原来,MySQL要求特定的内置函数列表在函数名和括号之间没有空格。有关此行为存在的原因的详细信息,请参阅this page in the MySQL Manual。
以下功能列表在MySQL 5.1中具有相同的限制(在以前的版本中还有更多):
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
希望这个答案可以帮助你避免浪费我相同的时间! : - )