【发布时间】:2018-05-10 19:32:02
【问题描述】:
我在 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 ;
我得到错误:[查询 2 中的错误] 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在“返回天数”附近使用的正确语法; END' 在第 13 行
【问题讨论】:
-
我得到错误:[查询 2 中的错误] 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在“返回天数”附近使用的正确语法; END' 在第 13 行
-
编辑您的问题并添加错误消息的全文
-
@SloanThrasher 谢谢.. 将错误消息添加到问题中
-
您实际上并没有在第一个 DELIMITER 语句之前和最后一个语句之后使用 `` 运行 sql,是吗?
-
刚刚检查了语法,发现显示为空格的奇怪字符。清理了空间,检查结果很好。我会用干净的文字发布答案