2017-07-27 13 views
0

.csvの間の奇妙な状況が、SSIS経由でSQL Serverテーブルにインポートされます。CSVインポート時にSQLの日付が変更される

CSVの日付25-May-46NVARCHARの列にインポートされます。

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

にその列を選択するときに私が得る「2046年5月25日」

Excelの日付にその列を変換する場合、私は「1946年5月25日」

を取得

誰かがこれを引き起こしている可能性があるアイデアはありますか?

答えて

2

SSMSの "Two Digit Year Cutoff"パラメータをチェックしてください - SQL Serverの右クリック - サーバーのプロパティ - 詳細設定。 デフォルト値は2049です。この設定の結果が期待されています。 2045に設定すると、SQL Serverで '1946-05-25'を取得します。

また、あなたがそのようにこの値を設定/確認することができます。

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 

・ホープ、このことができます。

+0

パベル、あなたは気になるロックスターです!ありがとう!! :)それはその問題を研究する1日以上の価値があると私を悩ませていました!ありがとう! – Tom

+0

うわー、私はロックスターです!ありがとう! :) Btw、あなたの質問は明確に定式化され、間違った前提をすべて脇に置いていました。 –

0

csvとマシンのローカリゼーションの日付形式が一致していない可能性があります。私は日付形式を確認して、それがあなたのマシン設定と一致することを確認してください。

+0

ありがとうございましたGreg! :) – Tom

関連する問題