在填充到表格列时,如何将无效的条目从日期字段文件转换为NULL?

时间:2019-01-22 03:17:47

标签: sql-server date ssis flat-file ssis-2008

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

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您可以使用脚本组件来实现:

添加脚本组件以检查该值是否正确,并添加类型为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

您可以通过以下链接中的更多方法获得更详细的答案: