从平面文件中提取数据。有问题的字段以字符串形式出现,并且格式化为适合Datetime类型的db列。 Field允许数据库中的null,并且文件包含成功转换为此字段中的日期的空值和有效字符串。
当我尝试将空值传递给数据库时,SSIS会抛出错误。
错误:数据插入期间发生异常,从提供程序返回的消息是:SqlDateTime overflow。必须在1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM之间。
([PO Scheduled Ship Date] == "") ? NULL(DT_DBTIMESTAMP) : (DT_DBTIMESTAMP)(SUBSTRING([PO Scheduled Ship Date],1,4) + "-" + SUBSTRING([PO Scheduled Ship Date],5,2) + "-" + SUBSTRING([PO Scheduled Ship Date],7,2))
答案 0 :(得分:0)
将表达式更改为 -
后尝试 (TRIM([PO Scheduled Ship Date]) == "" || TRIM([PO Scheduled Ship Date]) == "NULL") ? NULL(DT_DBTIMESTAMP) : (DT_DBTIMESTAMP)(SUBSTRING([PO Scheduled Ship Date],1,4) + "-" + SUBSTRING([PO Scheduled Ship Date],5,2) + "-" + SUBSTRING([PO Scheduled Ship Date],7,2))
答案 1 :(得分:0)
罪魁祸首是日期范围之外的数据。 “00010101”。