날짜 비교 질문입니다. 0 4 1,171

by 오라클배우자 [Oracle 기초] [2014.08.04 19:14:16]


오라클에서 비교를 할려고 하는데

날짜 중에 2월 30일 같이 없는 날짜를 찾는 방법을 알고 싶습니다.

예를 들어 이름과 출생년월일 컬럼이 존재하고

거기 출생연월일이 2월 30일 같이 실제 존재 하지 않는 데이터가 있을시

실제로 존재하는 데이터만 나오게 할수 있을까요?

ex)  

이름 출생년월일
홍길동 19800230
전우치 19900101

이때 전우치만 실제 존재하는 날짜로 검색해서 나오게 하고 싶습니다.

by 우리집아찌 [2014.08.04 19:21:32]

함수 하나 만드셔서 사용하시면 됩니다.

to_date() 안에 넣으셔서 에러나면 exception 처리하셔서 fail 아니면 ok..

http://www.gurubee.net/article/22806

 


by 오라클배우자 [2014.08.04 19:28:33]

이~!! 감사합니다! 

혹시 내장함수는 없겠죠?


by 우리집아찌 [2014.08.05 09:03:28]

TO_DATE() 가 내장함수죠....


by 백면서생 [2014.08.05 13:49:33]
--대용량의 데이터를 클렌징할 목적으로 사용하시는 거라면
--아래방법도 괜찮습니다.


with t1 as
(
select '111' b_date from dual union all
select '20140801' from dual union all
select '20140231' from dual 
),
t2 as -- 날짜 테이블 임의 생성
(
select to_char(to_date('19000101','yyyymmdd') + level,'yyyymmdd') y_date from dual 
connect by level <= sysdate - to_date('19000101','yyyymmdd'))
select *
from t1 
where exists (select '+' from t2 where t1.b_date = t2.y_date) -- 없는 날짜는 not exists

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입