Wie konvertiert man einen String im Format yyyyMMdd mit SSIS-Ausdruck?

8

Ich habe ein Datum 20130131 in csv, das ich in 2013-13-01 mithilfe der abgeleiteten Spalte in SSIS zu konvertieren versuche. Ich habe diesen Ausdruck verwendet, aber es scheint nicht zu funktionieren.

  

(DT_DBTIMESTAMP) (SUBSTRING (DATE_DECISION_TO_REFER, 1,2) + "-" + SUBSTRING (DATUM_DECISION_TO_REFER, 3,2) + "-" + SUBSTRING (DATE_DECISION_TO_REFER, 5,2))

Wie überschreibe ich diesen Ausdruck, um die korrekte Ausgabe mit einem Wert vom Datentyp DT_DBTIMESTAMP ?

zu erzeugen     
Djbril 08.03.2013, 14:53
quelle

3 Antworten

12

Nach Kyle Hale Vorschlag, unten ist meine Antwort

%Vor%

Um dich so zu erziehen, dass du nie wieder mit diesem Problem konfrontiert wirst, funktioniert der Ausdruck so

%Vor%

Hoffe, das wird helfen.

    
Zerotoinfinity 08.03.2013, 15:10
quelle
8

Ausdruck:

Sie sollten den Ausdruck verwenden, um das Datum wie unten gezeigt in yyyy-MM-dd zu formatieren. Dieser Ausdruck formatiert den eingehenden Wert 20130131 in 2013-01-31 und konvertiert dann in den entsprechenden Datentyp. Der Ausdruck verwendet die eingehende Spalte mit dem Namen Column0 .

  

(DT_DBTIMESTAMP) (SUBSTRING (Column0,1,4) + "-" + SUBSTRING (Column0,5,2) + "-" + SUBSTRING (Column0,7,2))

Problem:

Ihr Ausdruck nimmt den Wert 20130131 und wandelt ihn dann falsch in den Wert 20-13-01 um. Dies ist ein ungültiges Format für Datumsangaben und daher kann der Ausdruck nicht in DT_DBTIMESTAMP -Datentyp umgewandelt werden.

    
user756519 08.03.2013 15:01
quelle
6

Fast Parse ist eine viel elegantere Lösung

  1. Fügen Sie eine Datenkonvertierung Datenflusskomponente hinzu.
  2. Rechtsklick, Show Advanced Editor ...
  3. Gehe zu Eingabe- und Ausgabeeigenschaften
  4. Erweitern Sie die Datenkonvertierungsausgabe und klicken Sie auf die Datumsspalte
  5. Setzen Sie FastParse in den benutzerdefinierten Eigenschaften auf
  6. Stellen Sie sicher, dass der Datentyp auf Datenbankdatum [DT_DBDATE] festgelegt ist
  7. Führen Sie das ssis-Paket erneut aus. Die yyyymmdd-Daten sollten reibungslos von nvarchar zu Datum verlaufen
Louie Bao 19.10.2016 05:57
quelle

Tags und Links