2016-07-29 6 views
0

Ich versuche, ein SSIS-Programm zu starten, um einige Protokolldaten zu nehmen und in Excel für die spätere Verwendung mit einem BI-Tool zu exportieren. Die Daten haben 3 Zeitfelder, eine Startzeit, eine Beendigungszeit und eine Laufzeit. Sie scheinen korrekt zu sein, wenn sie aus meiner Skriptkomponente kommen. Wie es perfekt aussieht, wenn ich das dataviewer Werkzeug verwendeSSIS Adds Datum zu Uhrzeit Feld beim Exportieren nach Excel

Jedoch, wenn ich in Excel gehe, bekomme ich diese Art von Format.

On Run Time column

Ich bin nicht sicher, was dieser oder wie verursacht es zu beheben. Das Einzige, was ich bemerken konnte, war eine Eigenschaft im erweiterten Editor der Quelle, die den Spaltendatentyp auf den neuesten Stand brachte.

The Property

Aber jedes Mal, wenn ich versuche, es zu ändern DB_TIME (gleicher Typ wie kommen aus Skript) eingeben schaltet er nur auf das Datum Datentyp zurück.

Gibt es eine Möglichkeit, das Hinzufügen dieses Datums zu verhindern? Es macht den Einsatz des BI-Tools unmöglich. Jede Hilfe würde sehr geschätzt werden.

+0

Haben Sie versucht, das Ergebnis vor dem Exportieren in eine nvarchar umzuwandeln (per Abfrage)? Auf diese Weise sieht Excel Informationen als eine Zeichenkette mit dem Format, das Sie wollen –

+0

ich nicht habe. Kannst du erklären, wie das gemacht wird? –

+0

verwenden Sie CONVERT (NVARCHAR, Startzeit, 103) als Startzeit (zB DD/MM/YYYYY) in Ihrer Abfrage, finden Sie weitere Informationen über Format [hier] (https://technet.microsoft.com/en-us/ Bibliothek/MS187928 (v = sql.105) .aspx), auf diese Weise werden die Daten exportiert, um als Strings mit demselben Format zu übertreffen. dann erkennt Excel die Felder nicht als Datum, sondern als String –

Antwort

0

Ich habe das Problem gefunden. Es hatte etwas damit zu tun, dass der Excel-Verbindungsmanager dieses Feld automatisch als Datumszeitfeld erkannte und daher in diesem Format exportierte. Diese Änderung fand in der Verbindung zwischen der finalen Komponente und dem Ziel statt, sodass das Casting nicht so funktionierte, wie es danach passierte.

Ich habe einfach die XLS-Datei in eine CSV-Datei geändert und den Flat File Manager verwendet, und das hat den Trick gemacht!

0

Das scheint mir seltsam Verhalten, aber versuchen Sie eine Datenkonvertierung Transformation zu Ihrem Paket hinzufügen. Dies sollte den gewünschten Dateityp (String oder Zeit) erzwingen.

+0

Ich habe die Datenkonvertierung-Komponente ohne Erfolg versucht. Wenn ich jedoch versuchte, in eine Zeichenkette zu konvertieren, gab es mir den Fehler "Der Wert konnte wegen eines möglichen Datenverlustes nicht konvertiert werden", also muss ich das herausfinden und versuchen, eine Zeichenkette zu erhalten. –

+0

Welche Konvertierung haben Sie versucht? Ihre Skriptkomponente gibt entweder ein DateTime-Objekt oder eine Zeichenfolge zurück, .NET hat noch keinen Zeittyp. Haben Sie versucht, nach "DT_DBTIME" zu konvertieren? –

+0

Ja, ich habe versucht, die Zeit zu verstreichen, und ich habe versucht, nur die Zeit aus der Skriptkomponente zurückzugeben.als dbtime mit dem C# timespan Datentyp. Weder erreicht das Ziel –

0

Haben Sie

DT_WSTR versucht (1252)

die Zeit mit Datenkonvertierung Transformation zu werfen?