Question

Un MS SQL Server 2008 BULK INSERT à une colonne datetime introduit une erreur dans la 3 ème décimale de la partie secondes: 2009-09-19 15: 02: 41,328 dans le fichier d'entrée devient 2009-09-19 15:02 :. 41,327 dans la base de données

Voici ce que le fichier texte d'entrée contient:

1   2009-09-19 15:02:41.328

Voici ce que la table ressemble après INSERT VRAC:

1> select * from mss_t
2> go
 primary_key          data_1
 -------------------- -----------------------
                    1 2009-09-19 15:02:41.327

Voici le 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
Était-ce utile?

La solution

Cest pas une erreur ...

Datetime dans SQL Server sera toujours seulement cela

Précision  Arrondi par incréments de 0,000, .003 ou .007 secondes

Cest comming de:

http://msdn.microsoft.com/en-us/library /ms187819.aspx (Informations de type de données Datetime)

Si vous voulez un stockage plus précis que vous pouvez utiliser le type de datetime2

Il aura plus de précision que la plate

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top