Ssis 如何在For循环容器中循环存储为数字的日期值?
我有一个Ssis 如何在For循环容器中循环存储为数字的日期值?,ssis,Ssis,我有一个For循环容器,使用日期作为InitExpression(@Load\u date),但该值是数字格式(20120229),我需要这样做,因为我无法修改它 现在,我想设置AssingExpression值,这样@Load\u Date变量就可以像日期一样递增。换句话说,分配给变量@Load_Date的数值20120229应该增加到20120301,因为这是下一个逻辑日期 如何在SSIS包中的For loop容器中实现这一点?将循环驱动程序存储为日期,这样它就可以进行日期运算,然后使用一个
For循环容器
,使用日期作为InitExpression
(@Load\u date),但该值是数字格式(20120229),我需要这样做,因为我无法修改它
现在,我想设置AssingExpression
值,这样@Load\u Date变量就可以像日期一样递增。换句话说,分配给变量@Load_Date的数值20120229应该增加到20120301,因为这是下一个逻辑日期
如何在SSIS包中的For loop容器中实现这一点?将循环驱动程序存储为日期,这样它就可以进行日期运算,然后使用一个由基于该日期的表达式驱动的变量,将其转换为内部使用所需的格式。以下是一种可能的方法。下面的示例使用了SSIS 2012 假设您有两个变量,其中包含最小和最大日期范围,但它们以数字格式存储,并且您仍然希望这些值遵守日期规则 声明以下变量:
-此数据类型的变量MinInteger
将以数字格式存储最小日期值。如果您使用的是SSIS 2012,建议将其创建为参数,以便在运行时轻松配置值Int32
-此数据类型的变量MaxInteger
将以数字格式存储最大值日期值。如果您使用的是SSIS 2012,建议将其创建为参数,以便在运行时轻松配置值Int32
-此数据类型的变量MinString
将数字格式中的最小日期值转换为字符串,以便在拆分值以创建日期格式时更容易使用。将表达式设置为String
(DT_WSTR,10)@[User::MinInteger]
-此数据类型的变量MaxString
将数字格式中的最大日期值转换为字符串,以便在拆分值以创建日期格式时更容易使用。将表达式设置为String
(DT_WSTR,10)@[User::MaxInteger]
-此数据类型的变量MinDate
将分割最小日期的字符串值以形成日期值。将此变量的表达式设置为以下值:DateTime
-此数据类型的变量MaxDate
将拆分最大日期的字符串值以形成日期值。将此变量的表达式设置为以下值:DateTime
-此数据类型的变量Loop
将用于循环For循环容器中的日期值DateTime
- InitExpression:
@[User::Loop]=@[User::MinDate]
- EvalExpression:
@[User::Loop]
public void Main() { MessageBox.Show(string.Format("Current loop variable value: {0}", Dts.Variables["Loop"].Value.ToString())); Dts.TaskResult = (int)ScriptResults.Success; }