首页 > 解决方案 > 填充到表列时,如何将日期字段文件中的无效条目转换为 NULL?

问题描述

我是 SSIS 的新手,我正在处理一项任务,我正在从 csv 文件中读取一些列,并使用 SSIS 将它们填充到 SQL Server 2008 表中。文件中有一个日期字段列。如果该列具有除格式中的有效日期之外的任何值yyyy-MM-dd,我需要将其更改为 NULL 并将其填充到 SQL 服务器表中。有人可以帮忙吗?目前,该文件的某些记录为“-”,某些记录为空白。我看到我可以将三元运算符与 ? 和:就像java一样,但如果文件有任何比实际日期无效的值,我不确定如何使用它。

有人可以帮忙吗?

标签: sql-serverdatessisflat-filessis-2008

解决方案


您可以使用脚本组件实现此目的:

添加脚本组件检查值是否正确,并添加类型即OutDateColumn的Output Column,使用类似代码(VB.NET)

IF Not Row.DateColumn_IsNULL Then

dim dtDate as DateTime

    If DateTime.TryParseExact(Row.DateColumn,"yyyyMMdd",System.Globalization.InvariantCulture,System.Globalization.DateTimeStyles.None  , dtDate ) Then

        Row.outDateColumn = dtDate.ToString("yyyy-MM-dd")

    Else

        Row.outDateColumn_IsNull = True

    End If


Else

    Row.outDateColumn_IsNull = True

End If

您可以在下面的链接中使用更多方法获得更详细的答案:


推荐阅读