1. 오늘 날짜 기준으로 나이 계산하기
오늘 날짜 기준으로 나이 계산하기: 글쓰는 기준 현재 날짜가 2023년 7월 4일
생년월일: 1998년 9월 30일
나이: 24세 (2023년 - 1998년 = 25세, 7월 4일 기준으로 아직 생일이 되지 않았으므로 1세를 빼줍니다.)
SELECT TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE('19980930','YYYYMMDD'))/12) AS AGE FROM DUAL; |
출력값 : 24
2. 특정 날짜 기준으로 나이 계산하기:
생년월일: 1998년 9월 30일
특정 날짜: 2022년 1월 1일이라고 가정
나이: 23세 (2022년 - 1998년 = 24세, 1월 1일 기준으로 아직 생일이 되지 않았으므로 1세를 빼줍니다.)
SELECT TRUNC(MONTHS_BETWEEN(TO_DATE('20220101 ','YYYYMMDD')), TO_DATE('19980930','YYYYMMDD')/12) AS AGE FROM DUAL; |
출력값 : 23
3. 오늘 날짜와 생일을 고려한 정확한 나이 계산하기:
오늘 날짜와 생일을 고려한 정확한 나이 계산하기: 현재 날짜가 2023년 7월 4일이라고 가정.
생년월일: 1998년 9월 30일 나이: 25세 (현재 날짜가 7월 4일이므로 2023년 - 1998년 = 25세)
SELECT CASE WHEN TO_CAHR(SYSDATE,'MDD') < TO_CHAR(TO_DATE('19980930','YYYYMMDD'),'MMDD') THEN TRUNC (MONTHS_BETWEEN(SYSDATE, TO_DATE('19980930','YYYYMMDD'))/12) -1 ELSE TRUNC (MONTHS_BETWEEN(SYSDATE, TO_DATE('19980930','YYYYMMDD'))/12) END AS AGE FROM DUAL ; |
반응형
'IT > ORACLE' 카테고리의 다른 글
[ORACLE] TO_CHAR, TO_DATE, TO_NUMBER 정리 (숫자,날짜,시간 데이터 문자열 변환, 날짜변환) (0) | 2023.07.13 |
---|---|
[ORACLE] GROUP BY, HAVING 정리 한 컬림 기준으로 합계, 평균등 구하기 (0) | 2023.07.13 |
[ORACLE] ROW_NUMBER() 중복되는데이터는 하나로 처리하기 (그룹별로 순번을 지정하여 하나의 행만 추출) (0) | 2023.06.30 |
[ORALCE] NVL2 으로 NULL 값 처리하기 (0) | 2023.05.16 |
[ORACLE] WHERE 1=1는 왜 사용하는거야? (0) | 2023.05.16 |