SELECT trunc (months / 12) || '岁' || trunc (MOD(months, 12)) || '月' || trunc ( sysdate - add_months (birth, trunc(months)) ) || '天' age FROM ( SELECT months_between (sysdate, birth) months, birth FROM ( SELECT date '2016-1-1' birth FROM DUAL ) );
单独计算年龄的月数:
SELECT floor( MONTHS_BETWEEN ( TRUNC (SYSDATE, 'MONTH'), TRUNC (birthday, 'MONTH') ) / 12 ) AS age FROM DUAL
单独计算年龄的年数:
SELECT floor( MONTHS_BETWEEN (sysdate, date '2000-1-1') / 12 ) FROM DUAL