пару функций SQL, количество лет и возрастной период

Ирокез

бессмертный пони
Команда форума
Партнер клуба
Получаем возраст в годах

PHP:
CREATE FUNCTION `AgeYears` (Birthday DATE) RETURNS INT(3) No SQL
BEGIN
	RETURN YEAR(CURRENT_DATE)-YEAR(Birthday) - ((month(CURRENT_DATE)<month(Birthday)) OR 
		(month(CURRENT_DATE)=month(Birthday) AND day(CURRENT_DATE)<day(Birthday)));
END
Получаем возрастной период

PHP:
CREATE FUNCTION `AgePeriod`(Years INT(3),Gender enum('Male','Female')) RETURNS enum('baby','toddler','kid','child','teenager','young','adult','middle','retirement','elderly','old') CHARSET utf8
    NO SQL
    DETERMINISTIC
BEGIN
	SET Gender = IFNULL(Gender,'Male');
    Return (CASE 
        WHEN Years=0 THEN 1 
        WHEN Years BETWEEN 1 AND 3 THEN 2 
        WHEN Years BETWEEN 4 AND 7 THEN 3 
        WHEN Years BETWEEN 8 AND 12 AND Gender<>'Female' THEN 4 
        WHEN Years BETWEEN 8 AND 11 AND Gender='Female' THEN 4 
        WHEN Years BETWEEN 13 AND 16 AND Gender<>'Female' THEN 5 
        WHEN Years BETWEEN 12 AND 15 AND Gender='Female' THEN 5 
        WHEN Years BETWEEN 17 AND 21 AND Gender<>'Female' THEN 6 
        WHEN Years BETWEEN 16 AND 20 AND Gender='Female' THEN 6 
        WHEN Years BETWEEN 22 AND 35 AND Gender<>'Female' THEN 7 
        WHEN Years BETWEEN 21 AND 35 AND Gender='Female' THEN 7 
        WHEN Years BETWEEN 36 AND 45 THEN 8 
        WHEN Years BETWEEN 46 AND 60 AND Gender<>'Female' THEN 9 
        WHEN Years BETWEEN 46 AND 55 AND Gender='Female' THEN 9 
        WHEN Years BETWEEN 61 AND 75 AND Gender<>'Female' THEN 10 
        WHEN Years BETWEEN 56 AND 75 AND Gender='Female' THEN 10 
        WHEN Years > 75 THEN 11 ELSE NULL END);
END
 
Сверху