我无法将以下SQL转换为相应的SSIS表达式 并将其转换为日期格式
SUBSTRING(A.FILENAME,13,2)+'-'+SUBSTRING(A.FILENAME,15,2)+'-'+SUBSTRING(A.FILENAME,17,4)
这是我能得到的最好的
DT_DATE(SUBSTRING(@[User::V_LoadFileName],13,2)+'-'+SUBSTRING(@[User::V_LoadFileName],15,2)+''+SUBSTRING(@[User::V_LoadFileName],17,4))
有什么建议吗?
答案 0 :(得分:0)
在SSIS中投射到日期的字符串必须为 YYYY-MM-DD 。
如果你想将String转换为Datetime,它应该是 YYYY-MM-DD HH:MIS:SS 。
答案 1 :(得分:0)
Ferdipux答案中格式化数据的原因是您的环境可能没有使用相同的DATE样式(即YYYY / MM / DD与YYYY / DD / MM)。
此外,您的示例存在语法问题。在SSIS中进行投射有点奇怪。在变量之前关闭括号。
(DT_BOOL)"0"
返回FALSE
另请注意在SSIS中使用TWO报价。因此,您可能需要在脚本中使用'"'
才能正常工作。
在SSIS中投射的一些例子:
( «type» ) «expression»
(DT_I4)
(DT_STR, «length», «codepage» )
(DT_DATE)
(DT_BOOL)
(DT_WSTR, «length» )
(DT_NUMERIC, «precision», «scale» )
(DT_DECIMAL, «scale» )
(DT_DBTIMESTAMP)
最后,如果可以,请使用Expression Tester。在设计我自己的SSIS包时,我的生活真的很容易。 :d