我对SSIS包中的自动转换日期有一个奇怪的问题。 我使用Visual Studio Shell 2010开发。
在输入中,我有带有不同日期列和更多内容的* .csv。
第一步,我在CasiopFLUX base(SQL Server 2012)中导入行数据。
所有列类型均为nvarchar(2500)。 格式日期为:MM / DD / YYYY
第二步,我将OLEDB源目标用于CasiopDATA base中的导入数据:
执行时,您可以看到结果:
此数据库中的数据类型为Datetime:
我的问题如下:
我不明白问题出在哪里。在我的SSIS任务属性中,LocaleID配置为“英语(英国)”。所有软件都以英语安装,我服务器上的“区域设置”也以英语安装。
我有点困惑,你有什么主意吗?
非常感谢您
答案 0 :(得分:0)
英语使用dd/MM/yyyy
,美国人使用mm/dd/yyyy
。如果您有一个类似02/03/2019
的日期,并且您的语言环境是英国,那么它会被推断为02 March 2019
而不是03 February 2019
(如果您的语言环境是America,就应该是这样)。
就个人而言,当在SQL Server中使用模糊的日期格式,并且excel工作表中的数据未正确配置为日期时,我更喜欢将值作为varchar
导入到临时表中,然后转换值并将其插入生产表。
对于您的数据,这意味着您可以使用样式代码CONVERT
使用101
将数据转换为正确的日期:
CONVERT(date, InitialDeliveryDate,101)