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:
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:
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.
Ich habe versucht, andere Datentypen für die Stunden-Spalte, aber nichts konvertiert diese zu einem einzigen integer/Charakter. Irgendwelche Vorschläge?
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? –
Ja, wäre es. Aber wenn ich es in EmEditor öffne, sehe ich immer noch das Datetime-Feld statt nur die Hour. – MISNole
Was passiert, wenn Sie es im Editor öffnen? Und ohne es zuerst in Excel zu öffnen, was einige Excel-gesteuerte Änderungen speichern könnte. –