팁이라고 까지 할것은 없지만,
여기저기 검색해 보고 근속월수를 구하는 만족스런 답을 얻지 못해서
오라클 MONTHS_BETWEEN 함수를 이용한 방법을 써봤습니다.
1일 이라도 더 근무하게 되면 한달을 인정해주는 퇴직금 계산시 유용한 근속개월수 계산법 입니다.
이 MONTHS_BETWEEN 함수도 윤달은 정확히 체크를 못한다고 해야 하는지,
아래 2004-02-28 일 2004-02-29 일 두 쿼리의 결과는 동일하게 정확히 12개월로 딱 떨어진다고 리턴을 하네요.
윤달의 2월29일 체크를 정확히 해야 하는 경우는 조금 다른 방법을 써야 할것 같습니다만,
일단 그 외의 경우는 활용하실 수 있을것 같습니다.
더 좋은 쿼리 방법이 있으면 알려주시면 감사하겠습니다.^^

SELECT months_between(TO_DATE("20040228"),TO_DATE("20030301")-1) MON_BETWEEN ,
TRUNC(months_between(TO_DATE("20040228"),TO_DATE("20030301")-1) + 0.9999999999999 ) GUN_MONTHS
FROM DUAL

SELECT months_between(TO_DATE("20040229"),TO_DATE("20030301")-1) MON_BETWEEN ,
TRUNC(months_between(TO_DATE("20040229"),TO_DATE("20030301")-1) + 0.9999999999999 ) GUN_MONTHS
FROM DUAL

SELECT months_between(SYSDATE,TO_DATE("20030301")-1) MON_BETWEEN ,
TRUNC(months_between(SYSDATE,TO_DATE("20030301")-1) + 0.9999999999999 ) GUN_MONTHS
FROM DUAL