使用date创建MySQL函数

使用date创建MySQL函数,mysql,Mysql,我正在尝试创建一个函数,该函数以年为单位计算年差。我不能让它工作,我不明白为什么,因为下面的工作外的功能很好 DELIMITER $$ CREATE FUNCTION current_age (birthdate date) RETURNS date BEGIN DECLARE age_return date; DECLARE rightnow date; SET rightnow = date(now()); SET age_re

我正在尝试创建一个函数,该函数以年为单位计算年差。我不能让它工作,我不明白为什么,因为下面的工作外的功能很好

DELIMITER $$
CREATE FUNCTION current_age (birthdate date)
RETURNS date
BEGIN
        DECLARE age_return date;
        DECLARE rightnow date;
        SET rightnow = date(now());
        SET age_return = timestampdiff(year, rightnow, date(birthdate));
        RETURN age_return;
END  $$
DELIMITER ;

select current_age(date('2017-06-30'));
如果我们想要返回若干年,那么返回类型将是一个数字类型,如INT或DECIMAL。我们不会返回日期数据类型

SET @birthdate = '2001-01-01';
SET @rightnow = date(now());
SELECT timestampdiff(year, @rightnow, date(@birthdate))
不能让它工作意味着什么?
DELIMITER $$

CREATE FUNCTION current_age(birthdate DATE)
RETURNS INT
BEGIN
  RETURN TIMESTAMPDIFF(YEAR,birthdate,DATE(NOW()));
END$$

DELIMITER ;