0

我有一个 SSIS 包,可将数据从 excel 源导入 SQL Server DB。该文件有一个名为[Client Date Of Birth]通常是有效日期的列。我说通常是因为数据是由我们客户的代理输入的,可以是从02/24/2017Feb 17甚至只是2017. 我实际上需要将这些数据作为字符串输入,因为我们对这些日期进行了部分比较,因此数据按原样输入在Feb 2017技术上仍然可以。

问题是 SSIS 自动确定此列是[DT_DATE]类型。我尝试将[DT_WSTR]源的高级编辑器的外部列部分中的数据类型更改为,但是当我单击确定时,SSIS 会自动将其切换回[DT_DATE]. 如何让 SSIS 将此列作为字符串导入?

还应该注意的是,这是一个自动过程,所以我不能对 excel 文件本身进行任何更改,因为它每周都会被一个新文件替换。

4

1 回答 1

0

有很多方法可以实现这一点:

第一种方式

  • 添加脚本组件
  • 标记[Client Date Of Birth]为输入列
  • [StrDOB]创建数据类型为等于的输出列[DT_STR]
  • 在脚本中编写以下代码(我假设您需要日期格式yyyy-MM-dd HH:mm:ss):

    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
    
        If Not Row.ClientDateOfBirth_IsNull Then
                Row.strDOB = Row.ClientDateOfBirth.ToString("yyyy-MM-dd HH:mm:ss")
            Else
                Row.strDOB_IsNull = True
        End If
    
    End Sub
    

第二种方式

使用数据转换转换组件来实现这一点。只需按照此 MSDN 链接获取帮助:

于 2017-02-26T22:41:01.523 回答