我似乎无法让它正常工作,我总是遇到不同的错误。此时如有任何建议,我们将不胜感激...
CREATE DEFINER=`db`@`localhost` FUNCTION `output_date`(in_date DATE) RETURNS DATE
READS SQL DATA
BEGIN
DECLARE date_format_index INT;
DECLARE date_format_string VARCHAR;
SELECT s.output_date_format INTO date_format_index FROM config s
SET date_format_string = ( CASE date_format_index WHEN 2 THEN '%d-%m-%Y' WHEN 3 THEN '%m-%d-%Y' ELSE '%Y-%m-%d' END );
RETURN in_date
END
我在尝试处理此函数时使用 DELIMITER $$。
当前错误是...
Error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '; SELECT s.output_date_format INTO date_format_index FROM system_config s SET d'
我的环境是MyEclipse,最新版本。 我的MySQL版本是5.2。
最佳答案
您缺少一些分号以及 varchar 的问题,请尝试以下操作:
DELIMITER $$
CREATE DEFINER=`db`@`localhost` FUNCTION `output_date`(in_date DATE) RETURNS DATE
READS SQL DATA
BEGIN
DECLARE date_format_index INT;
DECLARE date_format_string VARCHAR(100); -- obviously change the size
SELECT s.output_date_format INTO date_format_index FROM config s;
SET date_format_string = ( CASE date_format_index WHEN 2 THEN '%d-%m-%Y' WHEN 3 THEN '%m-%d-%Y' ELSE '%Y-%m-%d' END );
RETURN in_date;
END
$$
DELIMITER ;
它在我的盒子上运行。
关于mysql - 无法创建函数 MySQL 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33555111/