설명을 정확하게 해주셔야할 것 같습니다.
'컬럼에 입력되게' --> insert시 정합성 체크를 한다는 것인가요?
'abced 이면 null 을 표현하고자' -> select 쿼리를 만들고 싶으신 건가요?
날짜형식이면 select 에 표현되고 날짜형식이 아니면 null로 표현되면 됩니다.
select case when aaa_ymd = 올바른잘짜 then aaa_ymd
else '' end
텍스트로 입력된 값을 날짜로 바꾸어 저장하려는 듯 한데요?
텍스트로 입력 받지 마시고 달력에서 선택해서 입력하는 방식으로 바꾸시는게 좋을 듯 합니다.
--> 오류 자료 입력 원천 차단
텍스트로 입력을 받는다면?
yyyy-mm-dd 형식만 유효하게 입력되는 것인지?
사용자에게 입력을 맡기면 다양한 예외가 발생할 것입니다.
- 대신 . 이나 / 또는 공백을 입력한다거나?
아니면 구분자가 아예 없다거나?
구분자를 한글로 입력한다거나?
월일이 두자리가 아닌 한자리만 입력한다거나? 2019-1-3
년도를 두자리만 입력한다거나?
일자 없이 년월만 입력한다거나?
등등등...
자료를 conversion해야 하는데 해당 컬럼의 날짜를 유효성을 체크해서 날짜형식인 것만 값을 넘기고 아니면 null을
넘길려고 합니다
말씀드렸듯이 날짜 형식은 다양합니다.
다양한 모든 케이스가 존재하는지? 몇가지로 한정되는지? 아니면 한가지 형태만 존재하는지?
현재 대상 자료의 형식을 정확하게 확인해 주세요.
날짜의 형식은 다향합니다.
2019-1-14 => null
2015-02-30 => null
2016-aaaa => null
2017-01 => null
2017- => null 등
예시를 전부 - 로 들어 주셨는데 - 만 존재하나요? 다른거로 한다거나?, 구분자가 아예 없는 것은 없는지?
2019-1-14 은 월을 한자리만 입력해서 인정되는 않는 건가요? 인정해줘도 될 듯 한데요?
YYYY-MM-DD 형식을 벗어난 자료는 무조건 인정하지 않는다? --> 이렇게 판단하면 되는지?
네 YYYY-MM-DD 형식을 벋어난것은 인정안하는것으로 표현하면 됩니다.
날짜 테이블 만드시고 outer join 하셔서 조인 되면 그대로, 조인 안 되면 null로 하시든
deterministic function 만드셔서 to_date로 convert 되면 날짜 리턴, 안 되면(exception 발생) null return 하게 하세요.
네. 한가지 고정 형식이라면? 달력 테이블 미리 만들어 놓고 조인 하시면 됩니다.