我在此功能哪里出问题了?

时间:2020-01-31 14:10:41

标签: mysql sql function

我正在尝试编写一个函数来查询mysql中的数据库。我想计算某人开始在营业场所工作的年龄。我将他们的hire_date和birth_date四舍五入到小数点后两位。我有查询工作,但无法将其转换为功能。

SELECT *,
ROUND(DATEDIFF(hire_date,birth_date)/365.25,1) AS AGE  
from Employees limit 15;

作为查询工作。

CREATE FUNCTION ah(hire_date date, birth_date date)
RETURNS int
DETERMINISTIC
BEGIN
    ROUND(DATEDIFF(hire_date,birth_date)/365.25,1) AS AGE
end

返回错误消息:ERROR 1064(42000):SQL语法有错误;查看与您的MySQL服务器版本相对应的手册以获取正确的语法,以在'(DATEDIFF(hire_date,birth_date)/365.25,1)AS AGE附近使用 在第5行结束

我要去哪里错了?

1 个答案:

答案 0 :(得分:2)

您的功能需要RETURN。我认为您想要:

CREATE FUNCTION ah(hire_date date, birth_date date)
RETURNS int
DETERMINISTIC
    RETURN ROUND(DATEDIFF(hire_date,birth_date)/365.25,1);

请注意,对于带有单个语句的简单代码,您不需要BEGIN/END块。