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
War es hilfreich?

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

http://msdn.microsoft.com/en-us/library /bb677335.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top