bulk insert-ein Datum im format YYYYMM-bis-Datum-Feld in MS-SQL-Tabelle
Ich habe eine große text-Datei (mehr als 300 Millionen Datensätze). Es ist ein Feld mit Datum im format YYYYMM. Ziel-Feld ist von Typ date und ich bin mit MS SQL 2008 R2 server. Aufgrund der riesigen Menge an Daten, die ich bevorzugen würde, um mithilfe von bulk insert.
Hier ist, was ich bereits getan habe:
bulk insert Tabela_5
from 'c:\users\...\table5.csv'
with
(
rowterminator = '\n',
fieldterminator = ',',
tablock
)
select * from Tabela_5
201206
im Datei entpuppt sich 2020-12-06
auf dem server, in der Erwägung, dass, würde ich mag es zu sein 2012-06-01
(ich don ' T Pflege über den Tag).
Gibt es eine Möglichkeit, bulk insert-Datum in einem solchen format in ein Feld vom Typ date?
freundlichen GRÜßEN
maciej pitucha
sowie die Umsetzung eine nicht-Datum in eine date-Spalte ist ein bisschen problematisch, aber können Sie die Daten in die Tabelle ein und führen Sie dann ein UPDATE Befehl, um das Datum zu dem, was Sie sein sollen?
InformationsquelleAutor Maciej Pitucha | 2012-05-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es nicht eine Möglichkeit, dies zu tun auf Bulk Insert. Sie haben 2 Optionen.
das Datum in ein DateTime-Feld
InformationsquelleAutor Jaimal Chohan
Laufen
SET DATEFORMAT ymd
, bevor die bulk insert-AnweisungBeachten Sie, dass
yyyy-mm-dd
undyyyy-dd-mm
sind nicht sicher in SQL Server in der Regel: welches sind die Ursachen dieser. Verwenden Sie immeryyyymmdd
. Für mehr, siehe beste Weg, um zu konvertieren und zu validieren, eine Datums-Zeichenfolge (in den Kommentaren besonders hervorgehoben werden Missverständnisse hier)InformationsquelleAutor gbn
Können Sie nicht über den Tag, aber SQL.
YYYYMM ist keine gültige SQL-Datum.
Ein Datum muss Tag Komponente.
In Ihrem Beispiel analysiert ihn nach unten, als JJMMTT.
Sie konnte einfügen in eine VarChar-als Jaimal vorgeschlagen, die dann Anhängen einer 01 und konvertieren.
Ich würde in die lese-Daten in .NET fügen Sie die 01 und die Nutzung von DateTime.ParseExact und einfügen einer Zeile von Zeile asynch. Sie fangen kann jeder analysieren, der nicht erfolgreich ist.
Oder Sie könnten in der Lage sein zu tun, ein globales ersetzen in der csv ", " "01,". Es ist einen Versuch Wert.
InformationsquelleAutor paparazzo