2017-12-29 14 views
0

Excelデータがあり、Open StudioのTalend Big Dataを使用してMongoDBにデータを挿入しようとしています。これは、私の仕事であるExcelシートでTalendの文字列をISOの日付形式に変換する

tFileInputExcel --> tMap --> tMongoDBOutput 

、私は、文字列型として、この形式の日付値の列2017年7月13日(MM/DD/YYYY)を持っていると私は、この列を挿入しようとしていますISO形式の値MongoDBのISODate( "2017-07-13T00:00:00.000Z")

これが私の仕事です:
tFileInputExcel:enter image description here

TMAP:enter image description here

tMongoDBOutput:enter image description here

このジョブを実行すると、私は以下のエラーを取得しています。 エラー:私はこのTalendDate.parseDate( "MM/DD/YYYY"、row1.ClosingDate)などの解析形式を変更する場合enter image description here

、私はSimpleDateFormatのエラーを取得しています。 単純な日付形式のエラーenter image description here この問題を解決するにはどうすればよいですか?

TalendDate.parseDate("MM/dd/yyyy",row3.newColumn) 

自動的にあなたのMongoDB列が持っている日付モデルで日付を変換します:あなたは、列スキーマをMongoDBの場合は、単に行うことができます

答えて

0

は日付です。

Talendのスキーマでは、"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"のような日付モデルを変更できます。

+0

はMM/dd/yyyyである必要があります。 –

+0

ありがとうございました –

+0

エラーが発生し、上記のエラー情報が追加されました。 – user3114967

0

これは、基礎となるデータ型を理解せずにデータを読み取る際によく起こる間違いです。

私は特に才能のために、このことについてブログに書いている:https://www.tobiasmaasland.de/2017/07/20/using-date-in-talend-etl-jobs/

をしかし、私は少し説明しましょう。

Excelは、セルの種類が文字列に設定されていると思われる場合でも、セル内のデータを変換しようとすることがあります。 Instedでは、Dateに設定されています。そのため、変換は不要で、入力コンポーネントの型を日付にする必要があります。

文字列でエラーが発生した場合、Stringの構造はどこでも同じではなく、一部のセルは空(null)です。だから、私はちょうどあなたが、プレースホルダの日付を使用する場合はnullを持つのinstedたい場合がありますと仮定

TalendDate.parseDate("MM/dd/yyyy", (row1.ClosingDate == null), "01/01/1970", row1.ClosingDate) 

に幸運かもしれません。

これは、すべてのセルが同じデータ型を持ち、すべてのデータが正しくフォーマットされている場合、セルの実際のデータ型に大きく依存します。

私のブログ記事の中の一つの事実を要約すると、日付に文字列を使用しないでください。 Excelで日付の日付を使用します。それはすべてをより簡単にします。

関連する問題