我坚持使用我的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
答案 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)