派生列表达式

时间:2017-03-08 11:07:43

标签: ssis

我需要推送到数据库的价值。来源是EventDate。它应该只包含格式为DD-MONTH-YY的数据值,数据库数据类型为datetime。

最近在EventDate中存在一个无效值,其中包含字符值'未知'这导致插入数据库失败。

google之后,发现可以使用派生列方法来转换“未知”#39;为null值。但我写的表达失败了。请帮忙

(DT_DATE)(TRIM(EventDate) == "Unknown" ? (DT_DATE)NULL(DT_DATE) : EventDate)

1 个答案:

答案 0 :(得分:2)

您不需要再将NULL部分转换为某个部分。设置NULL([datatype])应该没问题。

您可能还需要先将列转换为unicode才能进行TRIM。尺寸可能大于20,只需检查。

TRIM((DT_WSTR,20)EventDate) == "Unknown" ? NULL(DT_WSTR,20) : EventDate

但这应该或多或少。如果仍有一些问题,请为fisrt和last部分添加和删除一些强制类型,以查看它是否发生变化。可能仍然是你NULL(DT_DATE)