How about this:SQL> Select months_between(trunc(sysdate,'MM'), trunc(hiredate,'MM')) mb
2 , hiredate
3 , trunc(hiredate,'MM')
4 , trunc(sysdate,'MM')
5 from emp
6 /
MB HIREDATE TRUNC(HIRED TRUNC(SYSDA
---------- ----------- ----------- -----------
265 17-NOV-1981 01-NOV-1981 01-DEC-2003
271 01-MAY-1981 01-MAY-1981 01-DEC-2003
270 09-JUN-1981 01-JUN-1981 01-DEC-2003
272 02-APR-1981 01-APR-1981 01-DEC-2003
267 28-SEP-1981 01-SEP-1981 01-DEC-2003
274 20-FEB-1981 01-FEB-1981 01-DEC-2003
....
The dates are truncated by month. MONTHS_BETWEEN gives exactly what you need. But the months between you calculate are actually a month too high.
MHE