2008/10/24 14:17
[database]
Oracle에서 주민등록번호로 나이를 구하는 방법입니다.
주민번호 뒷자리의 첫자리가 1, 2면 1900년대생, 3, 4면 2000년대생임으로, 현재날짜와 주민번호상의 날짜 사이의 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
'database' 카테고리의 다른 글
| 주민등록번호로 나이를 구하는 Query (0) | 2008/10/24 |
|---|---|
| 날짜 포함 비교 Query (0) | 2008/07/08 |
| Database 버전 확인 (0) | 2008/04/16 |
| ORACLE에서 한글을 지원하는 캐릭터셋 (0) | 2008/02/20 |
| ORACLE dictionary (user_updatable_columns) (0) | 2007/12/06 |
| ORACLE dictionary (all_tab_cols) (0) | 2007/11/30 |

이올린에 북마크하기
이올린에 추천하기