私は実際にはテキストフィールドであるincarceration_dateという列を持っており、それを日付としてキャストしたいと考えています。通常問題はありませんが、この列のすべての値は、最後にno-breakスペース(&#160)があり、当然のことながら日付関数のエラーとなります。PostgreSQLの文字列から改行なしスペースを削除するにはどうすればよいですか?
私は成功しなければこの問題に対して2つの異なるアプローチを試しました。
試み1:
trim(both chr(65279) from incarceration_date)::DATE
試み2:[:スペース:] []ゼロ幅ノーブレークスペースが含まれていません
regexp_replace(incarceration_date, '\s+$', '')::DATE
私がため、2番目の試みが失敗したと思います。
フィールドはすべて同じ幅であるため、最初の10文字を日付関数に渡すだけでこの問題を回避できます。しかし、インポートしたデータに使用する一般的なテキストクリーニング機能があり、この文字を処理できるようにしたいと考えています。
サンプル文字列は次のようになります。
"06/17/2011 "
しかし、私は、問題の文字をコピーするSO正しくことはよく分かりません。
私はPostgreSQL-9.5.0を使用しています。
エンコード介してincarceration_date列出力の1行分の出力(incarceration_date :: bytea型、 '六角')がある:
30362f31372f32303131c2a0
すべての行がc2a0
で終わります。
サーバーエンコーディングはUTF8です。
文字列 – ThiefMaster
から '[0-9 /]'以外を削除することができます 'encode(incarceration_date :: bytea、 'hex')'のサンプル結果を提供できますか?また、あなたのデータベースのエンコーディングを提供してください( 'show server_encoding;') – Abelisto
@Abelisto私は質問にその情報を追加しました。 –