SSIS处理日期和空日期?

时间:2016-10-03 13:01:21

标签: date csv ssis

我正在尝试使用MS-SSIS 2012加载CSV文件.CSV中的日期格式为;

1900-12-12
1987-01-23
.. etc

我编写了这段代码来将日期从字符串转换为日期,然后修复空值(并非每行都有一个日期)

(DT_DATE)(SUBSTRING(ISNULL(Geboortedatum) ? "1900-01-01" : Geboortedatum,1,4) + "-" + SUBSTRING(ISNULL(Geboortedatum) ? "1900-01-01" : Geboortedatum,6,2) + "-" + SUBSTRING(ISNULL(Geboortedatum) ? "1900-01-01" : Geboortedatum,9,2))

这失败了..原来是;

(DT_DATE)(SUBSTRING(Geboortedatum,1,4) + "-" + SUBSTRING( Geboortedatum,6,2) + "-" + SUBSTRING(Geboortedatum,9,2))

在我的文件中输入NULL值之前,哪个工作正常。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

试试这个。比你的代码更复杂,更快一点:)

(DT_DATE) (ISNULL(Geboortedatum) ? "1900-01-01" : (SUBSTRING(Geboortedatum,1,4) + "-" + SUBSTRING( Geboortedatum,6,2) + "-" + SUBSTRING(Geboortedatum,9,2)))

答案 1 :(得分:0)

这完成了工作......看起来它不是真正的空值。

(DT_DATE)(TRIM(Geboortedatum) == "" ? "1900-01-01" : (SUBSTRING(Geboortedatum,1,4) + "-" + SUBSTRING(Geboortedatum,6,2) + "-" + SUBSTRING(Geboortedatum,9,2)))