Database/Oracle
[오라클] 주민번호로 만나이 계산하기
데브포유
2013. 8. 26. 09:47
반응형
SELECT :sno
,TO_NUMBER(TO_CHAR(SYSDATE,'yyyy')) - TO_NUMBER(SUBSTR( DECODE( SUBSTR(:sno, 7, 1),'3','20','4','20','7','20','8','20','19')||SUBSTR(:sno,0, 6 ),1,4)) -
DECODE(GREATEST(SUBSTR(DECODE( SUBSTR(:sno, 7, 1),'3','20','4','20','7','20','8','20','19') || SUBSTR(:sno,0, 6 ),5,4),TO_CHAR(SYSDATE,'mmdd')),TO_CHAR(SYSDATE,'mmdd') ,0,1) YEAR
FROM DUAL
;
----------------------------------------------
ex) 1800년대 사람은 고려하지 않음.
1800 -> 남자는 0
여자는 9
----------------------------------------------
반응형