如果来自 CSV 文件的传入值始终采用04/20/2012
( MM/DD/YYYY
) 格式,那么您不必执行任何类型转换。您只需配置平面文件连接管理器以将文件中的值视为date
数据类型。
假设您的 CSV 文件看起来像这样,其中有一列包含 .

在 SSIS 包中,创建一个平面文件连接管理器来读取 CSV 文件。我将 CSV 存储在路径中C:\temp\Source.csv

在该Advanced
部分中,您会注意到平面文件连接管理器将第一列命名为Column1
,并且 DataType 属性设置为string [DT_STR]
。但是,文件中的值实际上是日期。您可以手动配置数据类型或单击Suggest Types...
按钮。

在Suggest Column Types上,保留默认值并单击OK。这将读取文件的前 100 行,并根据文件中可用的数据确定列类型。

单击OK
“建议列类型”对话框后,您会注意到平面文件连接管理器上的数据类型Column 0
已更改为date [DT_Date]
. 单击确定以配置平面文件连接管理器。您还可以根据您的要求重命名该列(例如InvoiceDate或OrderDate等)

现在您已经配置了平面文件连接管理器,您可以在数据流任务的平面文件源中使用它来读取数据并填充您的数据库。因此,无需使用派生列转换来操作值。
但是,如果您传入的文件值是类似的字符串120420 (YYMMDD)
,则这些值不能配置为日期数据类型。在这些情况下,您需要按照此答案中的建议使用派生列转换。
希望有帮助。