2

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

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

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() 相同。

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

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

请让我知道更多详细信息。感谢您的时间和帮助。我只想在包端而不是 T-SQL 端开发它。

--343

4

1 回答 1

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)
于 2013-07-17T21:45:53.163 回答