CONVERT를 이용해서 CHAR형식의 필드를 dataTime형식으로 가져오려고 합니다
이유는 주민번호를 이용해서 등록당시의 나이를 계산하려구요
REQUEST_DATE = 등록당시의 일시
PERSONAL_ID = 주민번호
SELECT CONVERT(DATETIME,REQUEST_DATE ,getdate()) FROM TOTAL
했는데 계속 데이터타입으로 변형중 에러라고 나오네요
확인좀 해주실수 있나요
이런건 어떨지요?
-- and convert(int,datepart(year,getdate())) - convert(int, '19'+ substring(ssno, 1, 2)) + 1 >= 25-- and convert(int,datepart(year,getdate())) - convert(int, '19'+ substring(ssno, 1, 2)) + 1 <= 45
25살 부터 45살까지 ^^
항상도움만 받아서 죄송합니다
정말감사합니다 ^^
-- 꼭 char타입 을 datetime으로 변경하실 필요는 없습니다.-- datediff 함수 계산시 내부적으로 컨버트 됩니다.-- 에러가 난 이유는 문법이 틀려서 입니다.-- SELECT CONVERT(DATETIME,REQUEST_DATE ,getdate()) FROM TOTAL 을-- SELECT CONVERT(DATETIME,REQUEST_DATE) FROM TOTAL 로 바꾸시면-- 에러가 안납니다.
---------------------------------------------------------------- 준비create table TOTAL(REQUEST_DATE char(8),PERSONAL_ID char(13))
insert TOTAL values('20050810','8008081234567')insert TOTAL values('20050810','7103051234567')
---------------------------------------------------------------- 여기부터
select [등록당시의 나이] = datediff(yy,left(PERSONAL_ID,6),REQUEST_DATE) from TOTAL
결과)
등록당시의 나이 ----------- 2534
(2개 행 적용됨)
-- ** 참고
select convert(smalldatetime,'710305')
------------------------------------------------------ 1971-03-05 00:00:00
(1개 행 적용됨)