Un format de Date compliqué ! DATETIME, TIMESTAMP, DATE ?
Bonjour et merci d'avance pour votre aide,
Avant tout, Je précise que je simplifie le problème pour une meilleur compréhension :
Alors, je me trouve dans une impasse. J'ai une base de données SQL Server 2008 dans laquelle se trouve une table :
Code:
1 2 3 4 5
| CREATE TABLE TableDate (
ID int NOT NULL,
DATE1 date NULL,
DATE2 date NULL,
DATE3 date NULL) |
Pour entrer des données dans cette table, j'ai comme point d'entré un fichier CSV que je ne peux pas toucher. A titre d'exemple je vous pose la première ligne de ce fichier :
Code:
123;01/09/11 00:00:00,000000000;15/09/11 00:00:00,000000000;20/09/11 00:00:00,000000000
Pour insérer les lignes de ce fichier dans ma table j'utilise le code suivant :
Code:
1 2 3 4 5 6 7 8 9 10
| BULK INSERT TableDate
FROM 'c:\Scripts SQL\export.csv'
WITH
(
FIELDTERMINATOR = ';',
ROWTERMINATOR = '\n',
FIRSTROW = 2,
DATAFILETYPE = 'char'
)
GO |
Enfin l'erreur retournée :
Code:
1 2
| Msg 4864, Level 16, State 1, Line 2
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 1, column 2 (DATE1). |
J'ai bien compris que le problème venait de la date. Le type date n'accepte pas la complexité de '15/09/11 00:00:00,000000000'. J'ai donc essayé les autres types :
- datetime : marche pas
- timestamp : marche pour DATE1 et le problème se décale à DATE2. Si je mets tout en timestamp, une erreur me dit que je n'ai droit qu'à un seul timestamp.
Je suis donc bloqué. Je pense que la solution serai de pouvoir, à la création de la base, préciser le format de la date qui va être passé lors de l'INSERT. un format de type jj/mm/aa hh:mm:ss,ms
Quelqu'un peut-il m'aider ?
Merci