SSIS 派生列 - 检查日期字段是否为空



在SSIS派生列中,我需要检查日期字段是空还是空,我正在使用这个表达式,但我得到一个错误:

TRIM([date field]) == "" ? NULL(DT_DATE) : TRIM([date field])

该字段的数据类型DT_DATE。这有什么问题?

我已经成功地使用了这样的表达式:

TRIM(String_field) == "" ? NULL(DT_WSTR,255) : TRIM(String_field)

您正在组合数据类型(如果 true 是日期,false 是字符串(。

这是正确的公式:

TRIM([date field]) == "" ? NULL(DT_DATE) : (DT_DATE)TRIM([date field])

我假设 [日期字段] 是一个字符串。

关于错误,它与派生的列结果数据类型有关,因为在条件运算符(?:(中,true和false表达式必须生成相同的数据类型。

此外,表达式不检查 NULL 值,应使用以下表达式:

TRIM(REPLACENULL([date field],"")) == "" ? NULL(DT_DATE) : (DT_DATE)TRIM([date field])

此外,您必须确保 [date 字段] 可以解析为日期,这样(DT_DATE)TRIM([date field])不会引发异常,您可以使用错误输出来处理不包含有效日期的值。

最新更新