作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
从一个平面文件中读取,该文件中有一列包含以下格式的年份和月份 --> “201212”。
我需要将它插入 DATETIME2 列,但首先我必须用“/”解析它并添加“01”作为日期。这样 201212 就会变成 2012/12/01
我在派生列转换中的表达式如下所示:
(DT_DBTIMESTAMP2,0)((DT_WSTR,4)SUBSTRING(RptMthDTM,1,4) + "/" + (DT_WSTR,2)SUBSTRING(RptMthDTM,5,2) + "/" + "01")
这似乎应该有效并且 SSIS 接受它(因为它可以解析表达式)但是在运行包时它会抛出一个完全无用的错误“尝试执行类型转换时发生错误。”以及错误所在的列。
我没有构建这个包,它被典当了,我被告知要让它工作。
在此先感谢 interwebs 家族。
最佳答案
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]
关于SSIS 派生列表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13752478/
我是一名优秀的程序员,十分优秀!