从包含以下格式的年份和月份的列的平面文件中读取 - > “201212”。
我需要将其插入到DATETIME2列中,但首先我必须用“/”解析它并在日期添加“01”。这样201212将成为2012/12/01
我的Derived Column Transformation中的表达式如下所示:
(DT_DBTIMESTAMP2,0)((DT_WSTR,4)SUBSTRING(RptMthDTM,1,4) + "/" + (DT_WSTR,2)SUBSTRING(RptMthDTM,5,2) + "/" + "01")
这似乎应该可以工作,SSIS接受它(因为它可以解析表达式)但是在运行包时会抛出一个完全无用的错误“尝试执行类型转换时发生错误”。以及它有错误的列。
我没有制作这个包,它是我的典当,我被告知让它工作。
先谢谢interwebs家庭。
答案 0 :(得分:2)
DT_DBTIMESTAMP2只能从特定的字符串格式转换:yyyy-mm-dd hh:mm:ss[.fffffff]
您可以改为使用此表达式:
(DT_DBTIMESTAMP2,0)((DT_WSTR,4)SUBSTRING(RptMthDTM,1,4) + "-" + (DT_WSTR,2)SUBSTRING(RptMthDTM,5,2) + "-" + "01 00:00:00")
更多细节: [http://msdn.microsoft.com/en-us/library/ms141036.aspx] [1]