Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建存储函数5.6.10时出现Mysql语法错误_Mysql_Stored Functions - Fatal编程技术网

创建存储函数5.6.10时出现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

我在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 + (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的查询