等效的SSIS表达

时间:2016-06-14 03:40:31

标签: sql-server ssis ss

我无法将以下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))

有什么建议吗?

2 个答案:

答案 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

http://expressioneditor.codeplex.com/