2017-12-12 11 views
0

以下は、データベースの日付のサンプルです。現在、これらの日付の値はvarcharに格納されており、これらの値を別のテーブルのタイムスタンプとして設定する予定です。私は、NULL値または'00/00/0000のいくつかの並べ替え00:00:00" にフォーマットをすべて無効な日付形式をキャストするために、デフォルトのルールを設定するにはどうすればよいPostgresの日付形式が無効

pickup_time 

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

期待:?

pickup_time 

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

答えて

1

[OK]を、ここでの基本的な考え方であるので、あなたは/他の正規表現であなたが処理したい各ケースごとに(または何か文字列のパターンを把握する)場合に設定する必要があります。

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