Zielspaltendaten sollten in einem Format:Datetime-Formate in einem bestimmten Format in SSIS Konvertieren
Wie in einem Format auf Zieltabelle von SQL Server die HireDate Spalte zu tun.
Zielspaltendaten sollten in einem Format:Datetime-Formate in einem bestimmten Format in SSIS Konvertieren
Wie in einem Format auf Zieltabelle von SQL Server die HireDate Spalte zu tun.
eine Skriptkomponente hinzufügen, Mark HireDate
als Eingabespalte, fügen Sie eine neue Spalte Ausgabe outHireDate
mit datatype DT_DBTIMESTAMP
Im Skript schreiben folgendes:
Deklarieren Sie eine Reihe von Formaten:
Dim strFormats() as string = {"dd/MM/yyyy","yyyy/MM/dd","MM/dd/yyyy"}
Und in Input0_ProcessInputRow
Unter Verwendung DateTime.ParseExact
Funktion wie folgt:
Row.OutHireDate = DateTime.ParseExact(Row.HireDate,strFormats,New System.Globalization.CultureInfo("en-GB"))
Wichtiger Hinweis
Es Konflikt verursachen kann, wenn Tag und Monat sind niedriger als 13
(ex: 01.03.2010)
Das ist sinnlos, wenn wir nicht wissen, welche Zeile welches Format hat. –
@NickMcDermaid Ich stimme damit überein, das ist, was ich meine in der wichtigen Anmerkung in meiner Antwort – Hadi
Was ist mit der Validierung in einem "wenn" -Aussagen zuerst oder versuchen Sie es parse (verschachtelt, falls erforderlich). –
Ihre Quellformate mehrdeutig sind. Ist '01/10/2008' 1. Okt. oder 10. Jan.? Du weißt es nicht, also kannst du es nicht konvertieren. Auch * vergessen * über Datum "Formate" in SQL Server. Wählen Sie den richtigen Datentyp 'DATE' und vergessen Sie das visuelle Format –
Sofern Sie nicht über eine Möglichkeit verfügen, das Datumsformat zu bestimmen, das in jedem Datensatz in der Flat-Datei verwendet wird, kann dies nicht korrekt durchgeführt werden. Wie @ Nick.McDeermaid schrieb - alle Daten, wo der Tag weniger als 13 ist, wird mehrdeutig sein. Außerdem sollten Sie wissen, dass [Datum/Uhrzeit-Datentyp das Anzeigeformat nicht speichert.] (Http://stackoverflow.com/questions/30032915/how-to-cast-the-datetime-to-time/30033028#30033028) –
Wenn es gibt nur zwei Arten von Formaten, nämlich JJJJ/MM/TT oder TT/MM/JJJJ, als können wir in das Format JJJJ/MM/TT wechseln? @ Nick.McDeermader –