MySQL:CAST 在括号前不需要空格?

Jus*_*ant 3 mysql casting function

在 MySQL 5.1 中,为什么这个 SQL 不能正常工作?

SELECT CAST (20091023 as date);
Run Code Online (Sandbox Code Playgroud)

[我刚刚自己找到了这个问题的答案——我会在下面自己回答——但这种行为太奇怪了,我想把它作为一个 StackOverflow 问答对来捕捉,这样其他人就不会浪费时间了同样的问题。]

Jus*_*ant 5

此代码有效:(注意“CAST”后删除了空格)

SELECT CAST(20091023 as date);
Run Code Online (Sandbox Code Playgroud)

原来 MySQL 要求特定的内置函数列表在函数名和括号之间没有空格。有关行为存在的原因的更多信息,请参阅MySQL 手册中的此页面

以下函数列表在 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     
Run Code Online (Sandbox Code Playgroud)

希望这个答案可以帮助您避免浪费与我在此相同的时间!:-)