Top > SQL 関数一覧 (T‐Z) > 誕生日から年齢を算出する
年齢を計算する(暦年齢)満年齢一般的な年齢
民法など特定の状況で使用される年齢
数え年
YEARS_OF_AGE ファンクション (誕生日から年齢を算出)
-- うるう日生まれに対応 -- 年齢計算に関する法律を考慮した場合において、BASEDATE が大晦日のときの問題に対応 -- P_METHOD: 0:一般的な年齢/1:年齢計算に関する法律を考慮/2:数え年 CREATE OR REPLACE FUNCTION RIVUS.YEARS_OF_AGE( P_BIRTHDAY IN DATE, P_BASEDATE IN DATE := SYSDATE, P_METHOD IN NUMBER := 0 ) RETURN NATURAL IS vBaseDate DATE := P_BASEDATE; vYearsOffset PLS_INTEGER := 0; vYears PLS_INTEGER; BEGIN IF (P_METHOD = 1) THEN vBaseDate := vBaseDate + 1; END IF; vYears := EXTRACT(YEAR FROM vBaseDate) - EXTRACT(YEAR FROM P_BIRTHDAY); IF (P_METHOD = 2) THEN vYearsOffset := 1; ELSIF (TO_CHAR(vBaseDate, 'MMDD') < TO_CHAR(P_BIRTHDAY, 'MMDD')) THEN vYearsOffset := -1; END IF; RETURN vYears + vYearsOffset; END; /-- 一般的な年齢についての SQL 変換例 -- 少々長くなるが以下のようになる SELECT EXTRACT(YEAR FROM P_BASEDATE) - EXTRACT(YEAR FROM P_BIRTHDAY) - CASE WHEN TO_CHAR(P_BASEDATE, 'MMDD') < TO_CHAR( P_BIRTHDAY, 'MMDD') THEN 1 ELSE 0 END FROM DUAL ;
期間の数え方
年齢計算に関連するリンク
|