使用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 ;