BLOG main image
분류 전체보기 (76)
spring (12)
java (9)
database (17)
tool (7)
others (25)
blar blar (6)
«   2008/12   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
29,391 Visitors up to today!
Today 21 hit, Yesterday 51 hit
Statistics Graph
rss
Google
2008/10/24 14:17

Oracle에서 주민등록번호로 나이를 구하는 방법입니다.

주민번호 뒷자리의 첫자리가 1, 21900년대생, 3, 42000년대생임으로, 현재날짜와 주민번호상의 날짜 사이의 MONTHS_BETWEEN()을 구한다음 1년이 12달이므로 나누기 한 다음 TRUNC()으로 소수점 이하 자리를 제거하면 나이가 나옵니다. 물른 만 나이입니다. ^^

 

-- 나이 구하기

WITH t AS

     (SELECT '530425-1000000' AS n FROM DUAL

      UNION ALL

      SELECT '740906-2000000' AS n FROM DUAL

      UNION ALL

      SELECT '060608-3000000' AS n FROM DUAL

      UNION ALL

      SELECT '020306-4000000' AS n FROM DUAL)

SELECT t.n AS NO,

       CASE WHEN SUBSTR (t.n, 8, 1) IN ('1', '2') THEN

            TRUNC (MONTHS_BETWEEN (SYSDATE, TO_DATE ('19' || SUBSTR (t.n, 0, 6), 'YYYYMMDD')) / 12)

       ELSE

            TRUNC (MONTHS_BETWEEN (SYSDATE, TO_DATE ('20' || SUBSTR (t.n, 0, 6), 'YYYYMMDD')) / 12)

       END AS age

FROM   t


이올린에 북마크하기(0) 이올린에 추천하기(0)
크리에이티브 커먼즈 라이선스
Creative Commons License


Trackback Address :: http://aircook.tistory.com/trackback/78 관련글 쓰기
Name
Password
Homepage
Secret
prev"" #1 #2 #3 #4 #5 ... #76 next