Oracle中根据出生日期计算年龄

来源:互联网 发布:linux上svn命令 编辑:程序博客网 时间:2024/05/16 14:12
CREATE OR REPLACE FUNCTION GET_YEARS_OF_AGE(P_BIRTHDAY IN DATE) RETURN NATURALIS  vYears    NUMBER;  P_BASEDATE  DATE := SYSDATE;  P_METHOD  NUMBER := 0 ;BEGIN  vYears := EXTRACT(YEAR FROM P_BASEDATE) - EXTRACT(YEAR FROM P_BIRTHDAY);   CASE P_METHOD  WHEN 2 THEN    vYears := vYears + 1;  WHEN 1 THEN     IF (TO_CHAR(P_BASEDATE+1, 'MMDD') < TO_CHAR(P_BIRTHDAY, 'MMDD')) THEN      vYears := vYears - 1;    END IF;  ELSE    IF (TO_CHAR(P_BASEDATE, 'MMDD') < TO_CHAR(P_BIRTHDAY, 'MMDD')) THEN      vYears := vYears - 1;    END IF;  END CASE;   RETURN vYears;END;/