Ssis 加载昨天的数据';s日期和具体日期
我有一个ssis包,它根据日期参数运行。如果我们不指定日期,它总是加载昨天日期的数据。如果我们给出任何特定日期,如“2015-05-10”,则应加载该日期。我们如何动态地实现这一点(使用包配置)?一旦我们为任何特定日期加载,包应该动态地设置为昨天的日期。请指导我实现这一点,因为我是SSIS新手Ssis 加载昨天的数据';s日期和具体日期,ssis,ssis-2012,Ssis,Ssis 2012,我有一个ssis包,它根据日期参数运行。如果我们不指定日期,它总是加载昨天日期的数据。如果我们给出任何特定日期,如“2015-05-10”,则应加载该日期。我们如何动态地实现这一点(使用包配置)?一旦我们为任何特定日期加载,包应该动态地设置为昨天的日期。请指导我实现这一点,因为我是SSIS新手 提前感谢将参数添加到包ParamDate。必须手动提供该参数的值(例如03-21-2015)。如果必须考虑昨天的日期,请将其留空(空值) 现在在包中定义一个变量VarDate 有一个像这样的VarDate
提前感谢将参数添加到包
ParamDate
。必须手动提供该参数的值(例如03-21-2015)。如果必须考虑昨天的日期,请将其留空(空值)
现在在包中定义一个变量VarDate
有一个像这样的VarDate
表达式-
ISNULL(@[$Project::ParamDate])?DATEADD("day", -1, getdate()):@[$Project::ParamDate]
我假设您正在DFT中加载数据
因此,在源代码查询中,您只需要在where
子句中添加一个额外的条件
SELECT ...... FROM SomeTable WHERE LoadDate = ?
在源的“参数…”部分,将变量VarDate
分配给0
。有关如何映射参数的详细信息,请参见
希望能有帮助
编辑
由于这是在SSIS 2012下标记的,所以我的解决方案涉及项目参数,这是项目部署模型下的一个功能。包配置在包部署模型下
如果要使用SQL Server包配置表,则可以执行以下步骤:
假设该表的名称为SSISConfiguration
Execute
,从该表中读取该日期
SELECT ISNULL(TstampUpdateDate, DATEADD(dd, -1, GETDATE()) FROM SSISConfiguration
SSISConfiguration
表中获取TstampUpdateDate
的值,如果该值为NULL
(设置如下),它将返回昨天的日期
@VarDate
执行SQL任务
,将此字段更新为空您好,苏拉夫谢谢您的回复,我需要使用sql server包配置来实现这一点。在我的包中,我只使用执行sql任务。提前感谢..什么样的包配置?sql server包配置,所以包只会创建一个表,我们可以在其中手动编辑配置值。所以我们不需要在任何时候编辑包。如果我们不编辑这个表,它应该考虑昨天的日期。我不知道如何在SSIS中实现这一点?我希望我能向你解释……谢谢苏拉夫,这对我很有效。谢谢你抽出时间。