1

我对 SSIS 包中的自动转换日期有一个奇怪的问题。我使用 Visual Studio Shell 2010 进行开发。

在输入中,我有 *.csv 具有不同的日期列等等。

第一步,我在 CasiopFLUX 库 (SQL Server 2012) 中导入行数据。

CasiopFLUX 结果画面

所有列类型均为 nvarchar(2500)。日期格式为:MM/DD/YYYY

第二步,我使用 OLEDB 源目标在 CasiopDATA 库中导入数据: 数据流

在执行时,您可以看到结果:

CasiopDATA 结果画面

此数据库中的数据类型为 Datetime :

数据类型视图

我的问题如下:

  • 在 Modifiedon 列上格式化日期时间是可以的
  • InitialDeliveryDate 上的格式日期时间为 KO:DD MM 的反转
  • PlannedDeliveryDate 上的格式日期时间为 KO:DD MM 的反转

我不明白问题出在哪里。在我的 SSIS 任务属性中,LocaleID 配置为“英语(英国)”。所有软件都是英文安装的,我服务器上的区域设置也是英文的。

我有点困惑,你有什么想法吗?

非常感谢你

4

1 回答 1

0

英语用dd/MM/yyyy,美国人用mm/dd/yyyy。如果您有一个日期,02/03/2019并且您的地区是英格兰,那么它将被推断为02 March 2019不是03 February 2019(如果您的地区是美国,那就是这样)。

就个人而言,当在 SQL Server 中使用不明确的日期格式,并且 Excel 工作表中的数据未正确配置为日期时,我更喜欢将值作为 avarchar导入临时表,然后将值转换并插入到生产中桌子。

对于您的数据,这意味着您可以使用CONVERTStyle Code 将数据转换为正确的日期101

CONVERT(date, InitialDeliveryDate,101)
于 2019-07-12T09:57:40.427 回答