본문 바로가기

MSSQL

mssql- 주민번호로 나이구하기


 

Select cast(year(GetDate()) As Integer) -
cast(SubString((cast When SubString(주민등록번호 13자리,7,1) <= '2' Then '19' + 주민등록번호 13자리
Else '20' + 주민등록번호 13자리 End),1,4) As Integer) as mjumin

Ex) Select   Cast(Year(GetDate()) As Integer) -
             Cast(SubString((Case When SubString('8812251111111',7,1) <= '2' Then '19' + '8812251111111'
             Else '20' + '8812251111111' End),1,4) As Integer)  as mjumin

쿼리실행 결과 = 24


select ((year(getdate())+1) - cast(('19' + substring('주민등록번호 6자리', 1, 2)) as int))

Ex) select ((year(getdate())+1) - cast(('19' + substring('881225', 1, 2)) as int))

쿼리실행 결과 = 25


▶ 주민번호로 세대 구하기
검색된 나이를 10으로 나누면, 몫으로 해당하는 사람의 세대를 구할수있다.

select ((year(getdate())+1) - cast(('19' + substring('881225', 1, 2)) as int))/10

쿼리실행 결과 = 2
88년생 25살 = 20 대