2 votes

Importer des données dans une base de données SQL à partir d'un fichier txt

J'essaie d'importer des données depuis un fichier texte vers une base de données SQL dans mon projet Visual Studio. Toutes les colonnes ont été importées correctement, à l'exception de la colonne date. J'ai utilisé la commande suivante pour importer les données :

BULK INSERT T2 FROM 'c:\Temp\Data.txt' WITH (FIELDTERMINATOR = ',')

Dans le fichier texte, j'ai des dates comme 02-02-12, 03-02-12, etc. mais dans la base de données, toutes les lignes ont été définies au 01/01/1900. Je pensais que cela pouvait être dû au fait que les formats de date étaient différents dans le fichier texte et dans la base de données SQL. Quelqu'un sait-il comment importer mes dates dans la base de données ?

Merci

1voto

wmz Points 3525

Je rencontre le même problème en utilisant votre exemple dans 2008r2. Pas d'erreur mais tout est réglé sur 1900-01-01. Il semble qu'il s'agisse d'une bizarrerie de bcp lorsqu'il est utilisé pour remplir le champ DATE. Il se comporte de cette façon uniquement pour le type de colonne DATE

Donc si vous utilisez le type Date, changez-le en Datetime ou smalldatetime (les deux ont fonctionné pour moi) et voyez si cela aide. N'oubliez pas de définir le format de la date pour que les jours, les mois et les années soient correctement lus. Si c'est jour-mois-année (dans le fichier texte), ce devrait être :

set dateformat dmy
BULK INSERT T2 FROM 'c:\Temp\Data.txt' WITH (FIELDTERMINATOR = ',')

J'ai pu trouver un rapport à ce sujet, mais aucune réponse définitive sur la raison pour laquelle cela se produit : cas similaire rapporté ici

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X