我正在尝试编写一个函数来查询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行结束
我要去哪里错了?
答案 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
块。