DATE TYPE 관련 질문입니다. 0 8 2,251

by 구경서 [2008.11.28 11:45:44]


버전은 10G 이구요.

DATA TYPE 는 CHAR 로 되어 있습니다.

데이터가

예를들어서

200108

820719

071023

이런식으로 있는대.

1920-01-08

1982-07-18

2007-10-23

으로 변환 시켜주어야 합니다.

YY-MM-DD 형식을 쓰든 RR-MM-DD 형식을 쓰든

200108 데이터 는  무슨 2020원더키디 도 아니고,.....

2020-01-08 형식으로 먼 미래의 날자가 되어 버립니다.

그렇다고 올해날자 2008년 보다 큰년도 는 19로 다시 바꿔 주자고 하니

이런 방법은 2007 년 1907 년 이 겹쳐서 또 아닌거 같구요...

좋은 방법 없을까요??

by 마농 [2008.11.28 13:34:49]
CASE WHEN SUBSTR(날짜,1,2) <= TO_CHAR(sysdate,'yy') THEN '20' ELSE '19' END || 날짜

by 구경서 [2008.11.28 14:30:42]
에초에 DB설가 재대로 됐다면 이런 문제가 없었겠지만....
마농님이 제시 해준 방법도 생각 안한건 아닙니다.
결국 2007 년과 1907 년의 문제는 해결 되지 않는거같습니다.
내년이 되면 1909 년으로 표시되던 부분이 2009 로 한세기를 넘나드는
문제도 발생 하게 되구요..
아무래도 저렇게 겹치는 데이터는 몇건 안될듯하니 테이터를 갈아 엎는 수밖에 없는거 같네요...

by 마농 [2008.11.28 14:34:53]
실제로 1907년의 자료가 존재하나요? 그걸 확인하셔야 할듯.
밀레니엄 버그라고 1999년에 이미 처리했었어야 할 사항이네요.

by 구경서 [2008.11.28 14:44:36]
옛날 사진 자료 거든요 몇건 안되니 그냥 방치 해둔듯 합니다.
이전 소스는 19 를 갖다 부치는 방법 으로 되어 있더군요.

by 마농 [2008.11.28 14:52:08]
제 생각엔 전산시스템이 도입되어 일반화된지 그리 오래되지 않았으니..
1907년 자료는 없으리라 생각됩니다.

by 구경서 [2008.11.28 15:42:26]
전산시스템 도입으로 파생된 그런 데이터가 아니라
말그대로 자료입니다. 1907년 06 년 04일 단성사 설립
이런게 070604 로 입력되어 있을뿐이죠.
WHEN TO_DATE(SUBSTR(m.dat,0,6),'RRMMDD') >
TO_DATE(SYSDATE,'RR- MM-DD')
then TO_DATE('19'|| SUBSTR(m.dat,0,6),'RRRR-MM-DD')
WHEN TO_DATE(SUBSTR(m.dat,0,6),'RRMMDD') <
TO_DATE(SYSDATE,'RR-MM-DD')
then TO_DATE(SUBSTR(m.dat,0,6),'RR-MM-DD')
이부분이 이제 07 자료가 1907이 아닌 2007로 표시됨으로 다른 방법을 찾고 있는것이구요

by 마농 [2008.11.28 15:46:28]
0으로 시작하는 연도만 정렬시켜 놓고 내용을 일일이 확인하면서 분류작업하셔야 할듯합니다.
혹시나 1800년대 사진은 없겠죠? 그렇다면 대략 남감합니다.

by 구경서 [2008.11.28 16:02:31]
97이.... 설마...1997이 아니라 1897 은 아니겠죠;;;;;;;
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입