Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Age calculation query issue

Newbie_apex07Sep 19 2013 — edited Sep 20 2013

Hi

I am trying to calculate age using MONTHS_BETWEEN and then divide by 12

CREATE TABLE DOB (DATE_OF_BIRTH date);

Insert into DOB (DATE_OF_BIRTH) values (to_date('13-JAN-54','DD-MON-RR'));

Insert into DOB (DATE_OF_BIRTH) values (to_date('26-APR-54','DD-MON-RR'));

Insert into DOB (DATE_OF_BIRTH) values (to_date('30-JUN-29','DD-MON-RR'));

Insert into DOB (DATE_OF_BIRTH) values (to_date('03-JAN-67','DD-MON-RR'));

Insert into DOB (DATE_OF_BIRTH) values (to_date('04-AUG-49','DD-MON-RR'));

Insert into DOB (DATE_OF_BIRTH) values (to_date('27-DEC-47','DD-MON-RR'));

Insert into DOB (DATE_OF_BIRTH) values (to_date('21-MAR-67','DD-MON-RR'));

Insert into DOB (DATE_OF_BIRTH) values (to_date('26-SEP-56','DD-MON-RR'));

Insert into DOB (DATE_OF_BIRTH) values (to_date('06-MAY-52','DD-MON-RR'));

Insert into DOB (DATE_OF_BIRTH) values (to_date('01-JAN-00','DD-MON-RR'));

Insert into DOB (DATE_OF_BIRTH) values (to_date('07-JUL-63','DD-MON-RR'));

Insert into DOB (DATE_OF_BIRTH) values (to_date('24-JAN-62','DD-MON-RR'));

Insert into DOB (DATE_OF_BIRTH) values (to_date('22-OCT-63','DD-MON-RR'));

Insert into DOB (DATE_OF_BIRTH) values (to_date('15-OCT-36','DD-MON-RR'));

Insert into DOB (DATE_OF_BIRTH) values (to_date('06-SEP-36','DD-MON-RR'));

Insert into DOB (DATE_OF_BIRTH) values (to_date('27-FEB-60','DD-MON-RR'));

Insert into DOB (DATE_OF_BIRTH) values (to_date('03-NOV-75','DD-MON-RR'));

Insert into DOB (DATE_OF_BIRTH) values (to_date('08-APR-52','DD-MON-RR'));

Insert into DOB (DATE_OF_BIRTH) values (to_date('21-APR-60','DD-MON-RR'));

Insert into DOB (DATE_OF_BIRTH) values (to_date('22-MAR-57','DD-MON-RR'));

Insert into DOB (DATE_OF_BIRTH) values (to_date('21-SEP-63','DD-MON-RR'));

Insert into DOB (DATE_OF_BIRTH) values (to_date('27-JAN-73','DD-MON-RR'));

Insert into DOB (DATE_OF_BIRTH) values (to_date('29-SEP-65','DD-MON-RR'));

select  trunc(MONTHS_BETWEEN (SYSDATE, DOB.DATE_OF_BIRTH) / 12 )AS  "Age" from DOB;

Output

Age

---

59

59

-15

46

-35

-34

46

56

61

13

50

51

49

-23

-22

53

37

61

53

56

49

40

47

I get some as negative age and some as positive Tried using 'DD-MON-YY' but same result.

any suggestion

Thanks for your help.

This post has been answered by Frank Kulash on Sep 19 2013
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Oct 18 2013
Added on Sep 19 2013
8 comments
759 views