Wie ich dieses Problem beheben Datetime-Genauigkeitsfehler MSS 2008 Bulk?
-
11-09-2019 - |
Frage
Ein MS SQL Server 2008 BULK INSERT in einer Datetime-Spalte führt einen Fehler in der dritten Dezimalstelle des Sekundenteils: 2009-09-19 15: 02: 41,328 in der Eingabedatei wird 2009-09-19 15.02 . 41,327 in der Datenbank
Hier ist, was die Eingabetextdatei enthält:
1 2009-09-19 15:02:41.328
Hier ist, was die Tabelle wie nach Bulk aussieht:
1> select * from mss_t
2> go
primary_key data_1
-------------------- -----------------------
1 2009-09-19 15:02:41.327
Hier ist der Code:
CREATE TABLE mss_t (
primary_key BIGINT NOT NULL PRIMARY KEY,
data_1 DATETIME NOT NULL )
GO
BULK INSERT mss_t
FROM 'C:\temp\sa_t.txt'
GO
Lösung
Das ist nicht ein Fehler ...
für Datum und Uhrzeit in SQL Server wird immer nur das
Genauigkeit Gerundet auf Schritte von 0,000, 0,003 oder 0,007 Sekunden
Das ist comming aus:
http://msdn.microsoft.com/en-us/library /ms187819.aspx (Datetime-Datentyp Informationen)
Wenn Sie eine genauere Speicherplatz als Sie den datetime2 Datentyp verwenden können,
Es wird eine höhere Genauigkeit haben als die Ebene ein