创建存储函数5.6.10时出现Mysql语法错误
我在MySQL中执行以下函数时遇到语法错误创建存储函数5.6.10时出现Mysql语法错误,mysql,stored-functions,Mysql,Stored Functions,我在MySQL中执行以下函数时遇到语法错误 DELIMITER $$ DROP FUNCTION IF EXISTS `WORKDAYS` $$ CREATE FUNCTION `WORKDAYS` (start_date DATETIME, end_date DATETIME) RETURNS INT LANGUAGE SQL DETERMINISTIC BEGIN DECLARE days INT; SET days = 0; REPEAT SET days = days
DELIMITER $$
DROP FUNCTION IF EXISTS `WORKDAYS` $$
CREATE FUNCTION `WORKDAYS` (start_date DATETIME, end_date DATETIME)
RETURNS INT
LANGUAGE SQL
DETERMINISTIC
BEGIN
DECLARE days INT;
SET days = 0;
REPEAT
SET days = days + (CASE WHEN DAYNAME(start_date) in ('Friday',
'Saturday', 'Sunday') THEN 0 ELSE 1 END);
SET start_date = DATE_ADD(start_date, INTERVAL 1 DAY);
UNTIL start_date > end_date END REPEAT;
RETURN days;
END $$
DELIMITER ;
Error I get:[查询2中的错误]您的SQL语法有错误;查看与MySQL服务器版本对应的手册,了解在“返回日”附近使用的正确语法;
在第13行结束重复
结束后的查询隐藏字符代码>。确保编辑器是UTF-8
DELIMITER $$
DROP FUNCTION IF EXISTS `WORKDAYS`$$
CREATE FUNCTION `WORKDAYS` (start_date DATETIME, end_date DATETIME)
RETURNS INT
LANGUAGE SQL
DETERMINISTIC
BEGIN
DECLARE days INT;
SET days = 0;
REPEAT
SET days = days + (CASE WHEN DAYNAME(start_date) in ('Friday','Saturday', 'Sunday') THEN 0 ELSE 1 END);
SET start_date = DATE_ADD(start_date, INTERVAL 1 DAY);
UNTIL start_date > end_date END REPEAT;
RETURN days;
END$$
DELIMITER ;
Error i get:[查询2中的错误]您的SQL语法有错误;查看与MySQL服务器版本对应的手册,了解在“返回日”附近使用的正确语法;在第13行“结束”编辑您的问题并添加错误的全文message@SloanThrasher非常感谢。在问题中添加了错误消息您没有实际运行sql,在第一个分隔符语句之前,在最后一个分隔符语句之后,是吗?只是检查了语法,发现一个奇数字符显示为空格。清理了空间,一切正常。我将用清理过的文本发布一个答案,非常感谢您清理了@Sloan Thrasher的查询