ssis 派生列 - 检查日期字段是否为空
ssis derived column - check if date field is null
在 SSIS 派生列中,我需要检查日期字段是否为空或 null,我正在使用此表达式,但出现错误:
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])
我假设 [date field] 是一个字符串。
关于错误,它与派生列结果数据类型有关,因为在条件运算符(?:
)中,true 和 false 表达式必须生成相同的数据类型。
此外,您的表达式不检查 NULL 值,您应该使用以下表达式:
TRIM(REPLACENULL([date field],"")) == "" ? NULL(DT_DATE) : (DT_DATE)TRIM([date field])
另外,你要确保[date field]可以被解析为日期,所以(DT_DATE)TRIM([date field])
不会抛出异常,你可以使用错误输出来处理不包含的值有效日期。
在 SSIS 派生列中,我需要检查日期字段是否为空或 null,我正在使用此表达式,但出现错误:
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])
我假设 [date field] 是一个字符串。
关于错误,它与派生列结果数据类型有关,因为在条件运算符(?:
)中,true 和 false 表达式必须生成相同的数据类型。
此外,您的表达式不检查 NULL 值,您应该使用以下表达式:
TRIM(REPLACENULL([date field],"")) == "" ? NULL(DT_DATE) : (DT_DATE)TRIM([date field])
另外,你要确保[date field]可以被解析为日期,所以(DT_DATE)TRIM([date field])
不会抛出异常,你可以使用错误输出来处理不包含的值有效日期。