[Oracle] 오라클 나이 계산 쿼리 (만나이, 한국나이, 신생아)
- 데이터베이스/오라클
- 2019. 7. 26.
오라클에서 MONTHS_BETWEEN 함수를 사용하여 쉽게 나이를 계산 할 수 있다. 만나이 계산 방법을 많이 사용하며, 이것을 응용하여 한국나이를 계산할 수있다.
1세 미만의 나이는 개월수 또는 일수로 계산할 수 있는 쿼리도 있으니 아래를 참고하면 된다.
만나이 계산 쿼리
SELECT TRUNC(MONTHS_BETWEEN(TRUNC(SYSDATE), TO_DATE('19890326','YYYYMMDD')) / 12)
FROM DUAL
한국나이 계산 쿼리
SELECT MONTHS_BETWEEN(TRUNC(SYSDATE,'YEAR'),
TRUNC(TO_DATE('19890326','YYYYMMDD'),'YEAR')) /12 +1
FROM DUAL
※ 한국나이 = 현재년도 - 출생년도 + 1
만나이, 개월수, 일수(신생아)
WITH TEMP AS (
SELECT 'JONES' NM, TO_DATE('20190702', 'YYYYMMDD') BIRTHDAY FROM DUAL UNION ALL
SELECT 'ADAMS' NM, TO_DATE('20190228', 'YYYYMMDD') BIRTHDAY FROM DUAL UNION ALL
SELECT 'MILLER' NM, TO_DATE('19921114', 'YYYYMMDD') BIRTHDAY FROM DUAL
)
SELECT NM
, TO_CHAR(BIRTHDAY, 'YYYY-MM-DD') BIRTHDAY
, CASE WHEN TRUNC(SYSDATE) - BIRTHDAY <= 30 THEN
TRUNC(SYSDATE) - BIRTHDAY + 1 || '일'
WHEN MONTHS_BETWEEN(TRUNC(SYSDATE), BIRTHDAY) < 12 THEN
TRUNC(MONTHS_BETWEEN(TRUNC(SYSDATE), BIRTHDAY)) || '개월'
ELSE
TRUNC(MONTHS_BETWEEN(TRUNC(SYSDATE), BIRTHDAY) / 12 ) || '세'
END AGE
FROM TEMP
※ 1세 미만의 경우 개월수 또는 일수로 계산