誕生年月日を渡せば、今日の年齢を返します。
CREATE DEFINER=`root`@`localhost` FUNCTION `fc_age_by_birthdate`(
`bdate` date
)
RETURNS int(11)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT '日付値指定年齢取得スカラー関数'
begin
declare agetoday int;
select year(current_date) - year(bdate) - (right(current_date, 5) < right(bdate, 5)) into agetoday;
return agetoday;
end
DATE型値をキャストなしで部分文字列取得できます。
下は今日以外を指定した年齢取得
CREATE DEFINER=`root`@`localhost` FUNCTION `fc_age_by_birthdate_tgtdt`(
`bdate` date,
`tgtdt` date
)
RETURNS int(11)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT '日付値指定年齢取得スカラー関数'
begin
declare agetoday int;
select year(tgtdt) - year(bdate) - (right(tgtdt, 5) < right(bdate, 5)) into agetoday;
return agetoday;
end
[ 利用場面 ]