.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'
有没有人知道可能导致这种情况的原因?
答案 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中的日期格式可能与您的计算机本地化不匹配。我估计您应该查看日期格式并检查它是否与您的机器设置匹配