2017-09-19 8 views
0

データ品質の問題により失敗したETLジョブを実行しています。 私のソースでは、私の日付の列は文字列形式であり、メソッドを使用してTIMESTAMPに変換して、ターゲットに格納しています。SQL:値が 'Date'であるがタイプが 'String'のカラムのフォーマットをチェック

2016-11-10 06:07:48.633ではなく、1つの日付値(文字列形式)が2016-06-の場合、このジョブは失敗します。間違った値のため、私はタイムスタンプに変換することができず、私の仕事全体が失敗します。

フォーマットチェックを一般的な方法で適用して、日付(文字列データ型)がタイムスタンプに変換する前に正しい形式であることを確認するにはどうすればよいですか?

+0

https://stackoverflow.com/q/44018443/1509264またはhttps://stackoverflow.com/q/37659643/1509264 – MT0

+0

の可能な重複本当の質問:タイムスタンプをなぜVARCHAR列に格納していますか? –

+0

私はそれに完全に同意するが、それは私のコントロールではなく、変更することはできない –

答えて

1

Isdate()関数を使用して、文字列が日付かどうかを調べることができます。

フィルタレベルでこの関数を使用し、無効な日付をフィルターに掛けて残りを読み込みます。

関連する問題