我需要帮助一个条款使这个语句找到medianAge

时间:2017-08-13 07:12:27

标签: mysql sql

我需要在我的代码中编写一个FLOOR子句,以便从一个函数中转换这段代码,其中使用bdate列来训练每个员工的年龄,以查找表中的中位年龄。

DELIMITER \\
DROP FUNCTION IF EXISTS getAge;
CREATE FUNCTION getAge(pdate DATE) RETURNS int(11)
BEGIN
DECLARE years INT;
DECLARE months INT;
DECLARE days INT;
DECLARE age INT;

SELECT YEAR(pdate) INTO years;
SELECT MONTH(pdate) INTO months;
SELECT DAY(pdate) INTO days;

IF ( MONTH(CURRENT_DATE()) > months ) THEN
SELECT ( YEAR(CURRENT_DATE()) - YEAR(pdate) ) INTO age;
ELSEIF ( MONTH(CURRENT_DATE()) < months ) THEN
SELECT ( ( YEAR(CURRENT_DATE()) - YEAR(pdate) ) -1 ) INTO age;
ELSE
IF ( DAY(CURRENT_DATE()) >= DAY(pdate) ) THEN
SELECT ( YEAR(CURRENT_DATE()) - YEAR(pdate) ) INTO age;
ELSE
SELECT ( ( YEAR(CURRENT_DATE()) - YEAR(pdate) ) -1 ) INTO age;
END IF;
END IF;

RETURN age;
END \\
DELIMITER ;

SELECT getAge(bdate)
FROM employee

0 个答案:

没有答案