这是一个可能的解决方案,可以让您实现这一目标。
在 SSIS 包中,声明四个包范围变量。
TodaysDate - 类型的变量DateTime
。当您设置为 DateTime 时,将为变量分配当前日期和时间。您也可以更改此设置并将其设置为您选择的日期。
OffsetValue - 类型的变量Int32
。这将保存偏移值。对于此示例,我选择以天为单位的偏移值。因此,我将其设置为 7。
OffsetDate - 类型的变量DateTime
。选择此变量并按 F4 查看属性。将属性EvaluateAsExpression更改为True
。将表达式设置为值DATEADD( "dd", @[User::OffsetValue] , @[User::TodaysDate] )
。此表达式将偏移值添加到变量 TodaysDate,以便您获得新的 OffsetDate。
FormattedDate - 类型的变量String
。选择此变量并按 F4 查看属性。将属性EvaluateAsExpression更改为True
。将表达式设置为以下值
RIGHT((DT_STR,4,1252)YEAR(DATEADD("dd",0, @[User::OffsetDate] )),4) +""+
RIGHT("0" +(DT_STR,4,1252)MONTH(DATEADD("dd",-1,@[User::OffsetDate])),2)+""+
RIGHT("0" +(DT_STR,4,1252)DAY(DATEADD("dd",0,@[User::OffsetDate])) ,2)
唯一的区别是您正在格式化您选择的日期,在这种情况下是 variable 中的值OffsetDate
。该变量将保存已经偏移的日期。
下面的屏幕截图显示了一个示例。变量 TodaysDate 设置为11/28/2011
。向变量添加 7 天会将字段 OffsetDate 设置为12/05/2011
。如您所见,变量 FormattedDate 将新的偏移日期格式化为20111205
.
通过消除变量TodaysDate也可以使用少一个变量来完成此示例。您还可以为每种类型(如日、月和年)设置一个偏移变量。这一切都归结为一个人的喜好。
我希望这是您正在寻找的内容,并且可能会让您了解如何实现这一目标。