SSIS日期功能

时间:2013-07-17 20:58:04

标签: sql sql-server sql-server-2008 tsql ssis

我坚持使用我的ssis包中的日期部分

我在我的包中创建了3个变量& amp;我使用了这些表达式

1) @Days - 8

2) @DateDiff -  (DT_WSTR,4)YEAR(GETDATE()) + "-"    + RIGHT("0" + (DT_WSTR,2)MONTH(GETDATE()), 2)+ "-"+   RIGHT("0" + (DT_WSTR,2)DAY(DATEADD("dd", - @[User::Days] , GETDATE())), 2)

3) @datestarted - DATEDIFF("dd", (DT_DBTIMESTAMP) @[User::DiffDate],(DT_DBTIMESTAMP) @[User::PatDate]   ) 

这里patCon与getdate()相同。

在这里,如果我把这一天改为30天,它将不会带我到2013-06-17它将显示我2013-07-17的相同日期(假设gatedate()是2013-07-17)。

我想要动态更改日期的表达式 假设如果我放置Days - 50,那么它也应该改变月份。如果是天 - 500它会改变月份和年份。

请让我知道更多细节。感谢您的时间和帮助。我只能在包方而不是T-SQL方面开发这个。

- 343

1 个答案:

答案 0 :(得分:2)

您只是将DATEADD应用于拍摄日子字符串的部分,如果您希望它们受到影响,您也需要将它应用于月份和年份。我相信就是这样:

(DT_WSTR,4)YEAR(DATEADD("dd", - @[User::Days] , GETDATE())) + "-"    
+ RIGHT("0" + (DT_WSTR,2)MONTH(DATEADD("dd", - @[User::Days] , GETDATE())), 2) + "-"
+   RIGHT("0" + (DT_WSTR,2)DAY(DATEADD("dd", - @[User::Days] , GETDATE())), 2)