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

时间:2009-11-28 12:28:16

标签: mysql function casting

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

SELECT CAST (20091023 as date);

[我自己刚刚想出了这个问题的答案 - 我将在下面自己回答 - 但是这种行为太奇怪了,我想将它作为StackOverflow Q& A对捕获所以其他人不会在同样的问题上浪费时间。]

1 个答案:

答案 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     

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