Daffodil International University

IT Help Desk => Oracle Academy => Topic started by: Fayez on October 20, 2010, 12:25:59 PM

Title: Age Calculator Function
Post by: Fayez on October 20, 2010, 12:25:59 PM
Dear All,

Here is a function for calculating your age.



CREATE OR REPLACE FUNCTION age_calculator(dob IN DATE)
        RETURN  VARCHAR2 IS
        v1      NUMBER := CEIL((SYSDATE - dob) + 1);
        v2      NUMBER := FLOOR(v1/365);
        v3      NUMBER := FLOOR((v1 - v2*365)/30);
        v4      NUMBER := v1 - v2*365 - v3*30;
        v5      VARCHAR2(5);
        v6      VARCHAR2(6);
        v7      VARCHAR2(4);
    BEGIN
      IF v2 > 1 THEN
               v5 := 'years';
       ELSE
               v5 := 'year';
      END IF;
      IF v3 > 1 THEN
               v6 := 'months';
       ELSE
               v6 := 'month';
      END IF;
      IF v4 > 1 THEN
               v7 := 'days';
       ELSE
               v7 := 'day';
      END IF;
       RETURN v2||' '||v5||' '||v3||' '||v6||' '||v4||' '||v7;
    END;
/

select age_calculator('25-dec-1985') from dual;