【发布时间】:2015-07-16 23:24:42
【问题描述】:
下面是 SSIS 中时间戳的派生表达式
(DT_DBTIME)(SUBSTRING([Column 11],1,2) + ":" + SUBSTRING([Column 11],3,2) + ":" + SUBSTRING([Column 11],5,2))
但它不采用空值,所以我尝试了这个
ISNULL ( [Column 11] ) ? "000000" : (DT_DBTIME)(SUBSTRING([Column 11],1,2) + ":" + SUBSTRING([Column 11],3,2) + ":" + SUBSTRING([Column 11],5,2))
但它仍然无法正常工作。
有人可以帮忙吗?
【问题讨论】:
-
您能否提供更多详细信息,“它不接受空值” 和 “仍然无法工作” 是什么意思?一个错误或一个错误的结果,如果你把你的问题说清楚,你会增加得到答案的机会
-
当我尝试使用此 (DT_DBTIME)(SUBSTRING([Column 11],1,2) + ":" + SUBSTRING([Column 11],3,2) + ":" + SUBSTRING([Column 11],5,2)) 它工作正常。但是,当列中包含空值时,表达式将失败。所以为了克服这个空值,我使用了这个表达式 ISNULL ([Column 11]) ? "000000" : (DT_DBTIME)(SUBSTRING([Column 11],1,2) + ":" + SUBSTRING([Column 11],3,2) + ":" + SUBSTRING([Column 11],5,2 ))。但是当我尝试这个时它会抛出错误。
-
加载表时出错 [派生列 [876]]:计算表达式“ISNULL([列 11])?”000000“:(DT_DBTIME)(SUBSTRING([列 11],1,2 ) + ":" + SUBSTRING([Column 11],3,2) + ":" + SUBSTRING([Column 11],5,2)) " 失败,错误代码为 0xC00470A0。表达式可能有错误,例如除以零,在解析时无法检测到,或者可能存在内存不足错误。