문제

Oracle의 Varchar2 열에서 날짜를 가져와야하지만 형식이 일관되지 않습니다. 일부 분야에는 '2009.12.31', 다른 분야에는 '2009/12/32 00:00:00'이있을 수 있습니다. 내가 사용할 수있는 표준 구성이 있습니까?

begin
  to_date(date, mask1)
exception
  begin
    to_date(date,mask2)
  exception
    ..
  end
end

올바른 마스크를 결정하기 위해 블록 또는 사전 날짜 문자열 분석? 같은 것 to_date(date, mask1,mask2,..) ?

도움이 되었습니까?

해결책

아니요, 그러나 일부 Oracle 날짜 형식은 차이를 "용서"합니다.

SQL> select to_date('2009.12.31','YYYY/MM/DD') from dual;

TO_DATE('20
-----------
31-DEC-2009

따라서 처리해야 할 경우의 양이 줄어들 수 있습니다. 나는 당신이 생각했던 줄을 따라 함수를 작성하여 코드의 모든 장소에서 호출 할 수 있도록하는 것이 좋습니다.

다른 팁

지원하려는 가능한 모든 형식을 열거해야합니다. 일부는 모호합니다 (예 : "10-11-2009"10 월 10 일 또는 10 월 11 일)이므로 코드가 다른 코드보다 선호되어야합니다.

Tony가 말했듯이, 일부 형식은 분리기 문자 및 누락 된 비트의 구문 분석과 관련하여 다양한 입력을 받아 들일 것입니다 (예 : 'DD-Mon-Yyyy HH24 : MI : SS'는 '31 -dec-2009 10:30과 일치합니다. : 00 ', '31/Dec/2009 10:30', '31 Dec 2009 ').

이러한 단순화와는 별도로, 다른 사람들이 시작할 때 일련의 시작 (형식 1) 예외가 필요합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top