Sql server 我可以在T-SQL中使用DT_STR吗

Sql server 我可以在T-SQL中使用DT_STR吗,sql-server,tsql,ssis,Sql Server,Tsql,Ssis,我使用的是SSIS,其中有用于解析年/月和日文件的代码 因此,在Expression Builder中,我使用: (DT_STR,4,1252)MONTH( DATEADD( "dd", -1, getdate() )) gets the month (DT_STR,4,1252)DAY( DATEADD( "dd", -1, getdate() )) gets the day (DT_STR,4,1252)YEAR( DATEADD( "dd", -1, getdate() )) gets t

我使用的是SSIS,其中有用于解析年/月和日文件的代码 因此,在Expression Builder中,我使用:

(DT_STR,4,1252)MONTH( DATEADD( "dd", -1, getdate() )) gets the month
(DT_STR,4,1252)DAY( DATEADD( "dd", -1, getdate() )) gets the day
(DT_STR,4,1252)YEAR( DATEADD( "dd", -1, getdate() )) gets the year
然而,当我编码时,我也喜欢将代码粘贴到sql server查询窗口中,但是这个DT_STR似乎是特定于SSI的

是否有类似的替代品,或者为什么我不能在t-SQL中使用它

编辑:

好的,我现在明白了,这段代码并不是完全可以移植到t-sql,也不能正确地使用,月和日的长度从来都不是4

(DT_STR, 4, 1252) YEAR (DATEADD ( "dd", 0, getdate())) + RIGHT ("0" + LTRIM ((DT_STR, 4, 1252) MONTH (DATEADD ("dd", 0, getdate()))), 2) + RIGHT ("0" + LTRIM ((DT_STR, 4, 1252) DAY (DATEADD ("dd", -1, getdate()))), 2) + ".TXT"

SSIS表达式语言不是TSQL。您可能会问,为什么不能将Motorola68K汇编代码粘贴到R编译器中?DT_STR是一个很好的例子。近似值为varchar(N)

如果您的问题是如何验证表达式是否正确,请将它们分配给一个变量,然后您可以在包执行期间通过设置断点并查看“局部变量”窗口来检查它们。开发期间使用的变量窗口不包含运行时值。任务属性中构建的复杂表达式是故障排除的噩梦,因为没有提供检查的工具

最后,上面的代码为长度永远不会是4个空格的实体指定了4个长度:月和日