Wednesday, November 2, 2016

Oracle Age Calculation

with some_birthdays as
    ( select date '1983-09-18' d from dual union all
      select date '1989-05-02' from dual union all
      select date '2012-10-16' from dual
   )
    select trunc(sysdate) today
         , d birth_date
        , extract(year from numtoyminterval(months_between(trunc(sysdate),d),'month')) age
     from some_birthdays

-------------------------------------------------------------------------------------------------------

Select trunc(months_between(sysdate,dob)/12) year,
       trunc(mod(months_between(sysdate,dob),12)) month,
       trunc(Sysdate-Add_Months(DOB,Trunc(months_between(sysdate,dob)/12)*12
       +TRUNC(MOD(months_between(sysdate,dob),12)))) DAY
       From (Select to_date('01041977','DDMMYYYY') dob From Dual);

-------------------------------------------------------------------------------------------------------

No comments:

Post a Comment