FME - Wie konvertiere ich die Zeichenfolgendarstellung des Datums in ein Datumsformat, das SQL Server akzeptiert?

8

Ich habe Daten in Form von 07-28-2010Ich extrahiere aus DWG-Dateinamen. Ich muss diese in eine DateTime-formatierte Tabelle in nicht-räumlichem SQL Server 2008 verschieben. SQL Server mag sie anscheinend nicht als Zeichenfolgen, die von der ETL eingehen. Wie kann ich den Datentyp in der ETL von Zeichenfolge zu Datumszeit festlegen? Muss ich das überhaupt tun? Ich bin mir ziemlich sicher, dass dies mein Problem ist, basierend auf früheren Erfahrungen mit dem Übertragen von Daten an SQL Server und diesem Fehler von FME:

MS SQL Server Writer: 1 attribute value(s) failed conversion, and were written as NULL values
Chad Cooper
quelle

Antworten:

7

Aus dem FME Readers and Writers Manual:

Beim Schreiben in die Datenbank erwartet der Verfasser, dass das Datumsattribut die Form JJJJMMTTHHMMSS hat.

Sie müssen wahrscheinlich den DateFormatter-Transformator verwenden, um dieses Format zu erhalten. Ich würde:

Verwenden Sie einen StringReplacer, um das Attribut - durch / im Datum zu ersetzen. Verwenden Sie einen DateFormatter, der auf% Y% m% d oder% Y% m% d% H% M% S einschließlich Zeit festgelegt ist (stellen Sie sicher, dass der Fall richtig ist). Schreiben Sie ihn zu einem Datum / Uhrzeit-Feld in der SQL Server-Ausgabe

Mark Irland
quelle
Danke Mark. Am Ende habe ich einen StringSearcher und einen regulären Ausdruck verwendet, um das Datum aus dem Dateinamen zu ermitteln. In einem StringConcatenator habe ich die _matched_parts in YYYYMMDD neu angeordnet. Dies wird dann ganz gut in das Feld datetime SQL Server eingefügt.
Chad Cooper