2016-04-08 18 views
0

Ich rufe eine gespeicherte Prozedur von einer Datenflusstask in SSIS auf, in der ich den HOUR-Datumsteil eines Datetime-Felds auswähle. (Code unten aus der gespeicherten Prozedur)CSV zeigt kein korrektes Format vom SSIS-Export an

SELECT 
DATEPART (HOUR, R.received_date) AS [Hour] , 
CONVERT (VARCHAR(10), R.received_date, 101) AS [Date] , 
COUNT (R.id) AS [NumberofFilings] 

Und in meinem Datenflußtask, ich habe eine OLE DB-Quelle Aufgabe, in der ich die gespeicherte Prozedur aufrufen:

stored proc

Und wenn ich eine Vorschau die Daten mit der OLE DB-Quelle Aufgabe sehen die Daten, wie ich erwarten würde - mit der vollen Stunde Spalte eine ganze Zahl zwischen 0 & 24 Anzeigen:

source preview

Das Problem tritt auf, nachdem ich die Ergebnisse in eine CSV-Datei exportieren und die Stunde wird zu einem Datetime-Feld, in dem die Werte "1/11/1900 0:00" werden, was nicht das ist, was ich erwarte.

In meinem Flat-File-Zielverbindungs-Manager habe ich die Hour-Eigenschaften als vorzeichenbehaftete Ganzzahl mit vier Byte festgelegt, aber die Stunde wird nicht als Ganzzahl, sondern als Datetime angezeigt.

Advanced Properties

FF Source Preview

Ich habe versucht, andere Datentypen für die Stunden-Spalte, aber nichts konvertiert diese zu einem einzigen integer/Charakter. Irgendwelche Vorschläge?

+0

Wie sehen Sie in der CSV-Datei, um zu bestimmen, dass das Stundenfeld eine Datetime ist? Es wäre nicht zufällig in Excel, oder? –

+0

Ja, wäre es. Aber wenn ich es in EmEditor öffne, sehe ich immer noch das Datetime-Feld statt nur die Hour. – MISNole

+0

Was passiert, wenn Sie es im Editor öffnen? Und ohne es zuerst in Excel zu öffnen, was einige Excel-gesteuerte Änderungen speichern könnte. –

Antwort

0

Wenn Sie die .csv-Datei in Excel öffnen, vermute ich, dass Excel eine Spalte namens "Hour" betrachtet und denkt, "Muss ein Datetime-Feld sein. Ich werde meinem Benutzer einfach helfen und es so machen . "

Versuchen Sie, die .csv-Datei im Editor zu öffnen und sehen Sie, wie der tatsächliche Inhalt aussieht.

EDIT:

Ich bin nicht in der Lage, Ihre Ergebnisse zu reproduzieren. Wenn ich deine Schritte folgen erhalte ich eine CSV-Datei, die im Editor wie folgt aussieht:

"Col1","Col2" 
"0","04/05/2016" 
"0","04/02/2016" 
"0","04/01/2016" 
... 

Sie müssen etwas tun, dass Sie nicht in Ihrer Beschreibung des Problems einschließlich.

Oder vielleicht wurde Ihr Paket beschädigt. Sie könnten versuchen, es von Grund auf neu zu erstellen, um diese Möglichkeit zu eliminieren.

Aber ich habe getestet und bewiesen, dass was Sie versuchen zu tun, sollte funktionieren.

+0

Ich habe das versucht und sieht gleich aus - Wert wird als Datetime gespeichert.Danke, – MISNole

+0

In den erweiterten Eigenschaften Ihrer DataSource, was ist der Datentyp der Ausgabespalte "Hour" (oder wie auch immer es derzeit heißt)? –

+0

Es ist derzeit auf vier Byte vorzeichenbehafteten Ganzzahl festgelegt, aber ich habe auch andere Arten versucht: numerisch, Unicode, Text usw. – MISNole

Verwandte Themen