CSV导入时的SQL日期更改

时间:2017-07-27 04:27:56

标签: sql-server csv ssis ssis-2012

.csv文件通过SSIS导入SQL Server表时的奇怪情况。

CSV日期25-May-46已导入NVARCHAR列。

上选择该列时
REPLACE(CONVERT(NVARCHAR(10), CAST(date_of_birth AS DATE), 111), '/', '-')

我得到'2046-05-25'

将该列转换为Excel中的日期时,我得到'1946-05-25'

有没有人知道可能导致这种情况的原因?

2 个答案:

答案 0 :(得分:2)

您应该检查SSMS上的“两位数年份截止”参数 - 右键单击​​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

希望这有帮助。

答案 1 :(得分:0)

csv中的日期格式可能与您的计算机本地化不匹配。我估计您应该查看日期格式并检查它是否与您的机器设置匹配