2017-07-27 180 views
0

.csv通過SSIS將文件導入到SQL Server表中時出現奇怪的情況。CSV CSV導入時的日期更改

CSV日期25-May-46被導入到NVARCHAR列中。

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

帕維爾,你是一個該死的搖滾明星!謝謝!! :))這讓我困擾了超過一天的時間去研究這個問題!謝謝! – Tom

+0

哇,我是搖滾明星!謝謝! :)順便說一句,你的問題已經明確闡述,拋開所有錯誤的假設。 –

0

它可能是在csv與您的機器本地化的日期格式不匹配。我認爲你應該檢查日期格式,並檢查它是否與你的機器設置相匹配

+0

感謝Greg! :) – Tom