gpt4 book ai didi

sql-server - ssis 中的日期值错误

转载 作者:行者123 更新时间:2023-12-02 18:32:40 24 4
gpt4 key购买 nike

我正在与 ssis 合作。我有一列包含格式整数 YYYYMMDD 的日期:例如今天我得到 20190214 .我正在使用派生列将其转换为格式日期 YYYY-MM-DD以我为例 2019-02-14
但有时我会收到错误的值,例如 20188101 .我怎么能测试我有好的值(value)要转换成日期?

最佳答案

有3种方法可以实现

(1) 使用另一个派生列

除了第一个派生列之外,您还可以使用以下表达式添加另一个派生列:

(DT_DATE)(LEFT([DateColumn],4) + "-" +  SUBSTRING([DateColumn],5,2)  + "-" + RIGHT([DateColumn],2))

如果日期值不正确,则从 Error Output 重定向错误configuration ,您可以从错误输出处理这些错误值。

有用的链接
  • USING THE ERROR OUTPUT OF THE DERIVED COLUMN
  • How to prevent CAST errors on SSIS?

  • (2) 使用脚本组件

    添加脚本组件以检查值是否正确,并添加类型为 OutDateColumn 的输出列,使用类似的代码(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

    (3) 添加数据转换变换

    在派生列转换之后,添加一个数据转换转换并尝试将您添加的日期派生列转换为 DT_DATE ,如果转换失败,则按照第一种方法中的说明处理错误输出中的错误值。

    关于sql-server - ssis 中的日期值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54695587/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com