2017-12-12 1 views
0

다음은 데이터베이스에있는 날짜의 일부 샘플입니다. 현재이 날짜 값은 varchar에 저장되며이 값을 다른 테이블의 타임 스탬프로 설정하려고합니다. 수 나는 NULL 값 또는 어떤 종류의 모든 잘못된 날짜 형식을 캐스팅하기 위해 기본 규칙을 설정하는 방법Postgres가 잘못된 날짜 형식

/00/0000 0시 0분 0초 "형식

pickup_time 

01/01/2016 07:35:00 
00:00:00 
31/12/2015 
07:35:00 

기대 '00 :

pickup_time 

01/01/2016 07:35:00 
NULL 
31/12/2015 00:00:00 
00/00/0000 07:35:00 

답변

1

좋아, 여기에 기본적인 생각이다, 그래서 당신은/다른 정규식 당신이 처리하는 각각의 경우에 따라 (또는 뭔가 문자열의 패턴을 파악하는) 경우를 설정해야합니다.

create or replace function my_super_converter_to_timestamp(arg text) 
returns timestamp language plpgsql 
as $$ 
begin 
    begin 
     -- if(arg like '00:00:00') do something ... 
     return arg::timestamp; 
    exception when others then 
     return null; 
    end; 
end $$; 
+0

그게 좋은 생각이야! 나는 그것이 작동하는지 확인하는 함수를 작성하려고 노력할 것이다. 기본적으로 삽입으로 사용하여 준비에서 최종 테이블에 내 삽입하는 동안이 변환 싶어요 – Derek