2017-07-27 188 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