0

REST API から JSON 形式でデータを取得しており、列に複数の日付形式を含めることができるシナリオがあります。現在の日付形式は、2011-02-12T01:00:00または または または2020-04-15T20:44:57.38または のいずれかである可能性がnullあります。

式を使用して解析し、完全な日付文字列を取得しようとしています。次の式は正常に機能しているように見えますが、ミリ秒の部分が切り捨てられ、秒までの値のみが返されます。

iif(isnull(%date_fields%),'\N',
to_char(To_date(to_char(%date_fields%),'MM/DD/YYYY HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS'))

しかし、以下の式を使用してミリ秒で試したとき:

iif(isnull(%date_fields%),'\N',
to_char(To_date(to_char(%date_fields%),'MM/DD/YYYY HH24:MI:SS.MS'),'YYYY-MM-DD HH24:MI:SS.MS'))

エラーをスローしています:

TT_11132 Transformation [Expression3] had an error evaluating output column [JobStartDate_out]. 
Error message is [<<Expression Error>> [TO_DATE]: invalid string for converting to Date 
... t:TO_DATE(u:TO_CHAR(t:<02/12/2011 01:00:00>,u:'MM/DD/YYYY HH24:MI:SS'),u:'MM/DD/YYYY HH24:MI:SS.MS')]. 

以下を使用していくつかのオプションを検索しましたが、解析エラーが発生しました。

DECODE (TRUE,
iff(isnull(%date_milli%),
'\N',
is_date(To_date(to_char(%date_milli%),'MM/DD/YYYY HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS'),
is_date(To_date(to_char(%date_milli%),'MM/DD/YYYY HH24:MI:SS.MS'),'YYYY-MM-DD HH24:MI:SS.MS'),
ERROR('NOT A VALID DATE')))

Informatica で複数の日付形式を処理するには、どのような解決策が考えられますか? ここで、JSON 日付形式は文字列であり、日付/時刻型にマッピングし、出力マルコ フィールドを使用して複数の同様の列を結合しています。

4

1 に答える 1