MySQL: CAST не требует пробела перед скобками? - PullRequest
2 голосов
/ 28 ноября 2009

В MySQL 5.1, почему этот SQL не будет работать правильно?

SELECT CAST (20091023 as date);

[Я только что выяснил ответ на этот вопрос сам - и я сам отвечу на него ниже - но поведение было настолько странным, что я хотел запечатлеть его как пару вопросов и ответов StackOverflow, чтобы другие не буду тратить время на ту же проблему.]

1 Ответ

3 голосов
/ 28 ноября 2009

Этот код работает: (обратите внимание, пробел удаляется после "CAST")

SELECT CAST(20091023 as date);

Оказывается, 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     

Надеюсь, этот ответ поможет вам не тратить столько же времени, сколько я потратил на это! : -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...