在我的 SQL 2008 SSIS 环境中,我有来自 CSV 文件的数据,我需要修复空日期。
来自 CSV 的数据如下所示:
01011990
01011990
01011990
01011990
01011990
在我的临时表中,我有一列定义为:
[SHIPPED DATE] date NOT NULL
首先,我通过将列推入派生转换来修复日期值,该派生转换具有:
(DT_DBDATE)(SUBSTRING([发货日期],1,2) + "/" + SUBSTRING([发货日期],3,2) + "/" + SUBSTRING([发货日期],5,4))
上述转换使我的字符串日期从 CSV 导入到我的 SQL 数据库中的日期列中。
这个的输出是:
1990-01-01
1990-01-01
1990-01-01
1990-01-01
1990-01-01
Next
,我想处理 NULL 日期,以便我可以忠实于我的数据库中的“NOT NULL”定义。我想要做的是为 NULL 日期分配一个默认值,但我收到如下错误消息:
CSV 到 SQL 的错误 [派生列 [24817]]:数据类型“DT_WSTR”和“DT_DBDATE”与条件运算符不兼容。操作数类型不能隐式转换为条件操作的兼容类型。要执行此操作,需要使用强制转换运算符显式强制转换一个或两个操作数。
我的 CSV 列是 WSTR,我在 SQL DB 中的目标是“日期”列。
我尝试使用的转换是: ISNULL([SHIPPED_DATE]) ?“1900-01-01”:[发货日期]
由于上述消息,它不想工作。谁能指出我正确的方向?