2017-07-27 1 views
0

Situation étrange au cours de l'importation de fichier .csv via SSIS dans une table SQL Server.Modification de la date SQL lors de l'importation CSV

La date CSV 25-May-46 est importée dans une colonne NVARCHAR.

Lors de la sélection cette colonne sur

REPLACE(CONVERT(NVARCHAR(10), CAST(date_of_birth AS DATE), 111), '/', '-') 

je reçois '25.05.2046'

Lors de la conversion cette colonne à une date dans Excel, je reçois '25/05/1946'

Est-ce que quelqu'un a une idée de ce qui peut causer cela?

Répondre

2

Vous devez vérifier le paramètre "Coupure d'année à deux chiffres" sur le SSMS - cliquez avec le bouton droit sur votre SQL Server - Propriétés du serveur - Paramètres avancés. La valeur par défaut est 2049 et vous avez attendu le résultat pour ce paramètre. Définissez-le sur 2045 pour obtenir '1946-05-25' sur SQL Server.

vous pouvez également vérifier/définir cette valeur comme ça:

EXEC sys.sp_configure N'two digit year cutoff' --to check 

EXEC sys.sp_configure N'two digit year cutoff', N'2045' --to set 
GO 
RECONFIGURE WITH OVERRIDE 
GO 

Hope this helps.

+0

Pavel, vous êtes une putain de rock star !! Merci!! :)) Cela me dérangeait pour plus d'une journée de recherche de ce problème! MERCI! – Tom

+0

Wow, je suis une rock star! Merci! :) Btw, votre question a été clairement formulée, mettant de côté toutes les fausses hypothèses. –

0

Il peut s'agir d'une non-concordance entre le format de date dans la csv et la localisation de vos machines. Je suppose que vous devriez revoir le format de date et vérifier qu'il correspond à vos paramètres de machines

+0

Merci Greg! :) – Tom