【问题标题】:SSIS 2014 Derived Column, Ternary Expression to set date to nullSSIS 2014派生列,三元表达式将日期设置为空
【发布时间】:2016-01-26 18:35:46
【问题描述】:

在我的包中,我正在读取一个平面文件。该文件可以在其中一个字段中指定日期,也可以保留为 0 字符串。

如果它是 0,我想将它作为空值插入到我的数据库中。但是我不确定如何解决 Date 不可为空的问题。

目前,我正在检查文件是否在我的脚本组件中包含该日期的 0。如果为 0,我将其设置为默认日期 1/1/1900。

然后在派生列中,如果我的 Date 的年份是 1900 年,我将尝试替换我的 out_period_end_dt 列以将其设置为空值,或者将其保留原样。我的表情:

YEAR(out_period_end_dt) == 1900? out_period_end_dt = null : out_period_end_dt

它会抛出一个错误,指出我的表达式无效。我的列 out_period_end_dt 属于 DT_DBDATE 类型。我尝试寻找可以为空的日期数据类型,但找不到。有什么建议吗?

【问题讨论】:

    标签: sql-server datetime ssis nullable


    【解决方案1】:

    YEAR(out_period_end_dt) == 1900? NULL(DT_DBDATE) : out_period_end_dt

    【讨论】:

    • 这几乎是正确的。当我尝试这个表达式时,它抛出了一个错误,指出它找不到名为“null”的输入列。因此,我抓住了返回 DT_DBDATE 空值的函数,而不是这个。最后的表达式是:YEAR(out_period_end_dt) == 1900? NULL(DT_DBDATE):out_period_end_dt。对于发现此问题的其他任何人。
    • 已修复。说得通。我面前没有要验证的包裹。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多