加载昨天日期和特定日期的数据
Load data for yesterday's date and specific date
我有一个 ssis 包,它在日期参数上运行。如果我们不指定日期,它总是加载昨天日期的数据。如果我们给出任何特定日期,如“2015-05-10”,它应该在该日期加载。我们如何动态地实现这一点(使用包配置)?一旦我们为任何特定日期加载,包应该动态设置为昨天的日期。请指导我实现这一点,因为我是 SSIS 的新手。
提前致谢
向包 ParamDate
添加参数。此参数必须手动提供一个值(例如 03-21-2015)。如果必须考虑昨天的日期,请将其留空(NULL 值)。
现在在你的包中定义一个变量VarDate
像这样表达 VarDate
-
ISNULL(@[$Project::ParamDate])?DATEADD("day", -1, getdate()):@[$Project::ParamDate]
我假设您正在 DFT 中加载数据。
所以在源查询中,你只需要在 where
子句中添加一个额外的条件
SELECT ...... FROM SomeTable WHERE LoadDate = ?
在源代码的 "Parameters..." 部分,将变量 VarDate
分配给 0
。有关如何映射参数的更多详细信息,请参阅 here。
希望对您有所帮助。
编辑
由于这是在 SSIS 2012 下标记的,我的解决方案涉及项目参数,这是项目部署模型下的一个功能。包配置在包部署模型下。
如果您想使用SQL服务器包配置table,那么您可以按照以下步骤操作:
假设 table 的名字是 SSISConfiguration
有一个 Execute SQL task
你从这个 table 读取这个日期的地方。
SELECT ISNULL(TstampUpdateDate, DATEADD(dd, -1, GETDATE()) FROM SSISConfiguration
此脚本将从 SSISConfiguration
table 获取 TstampUpdateDate
的值,如果它是 NULL
(在下面设置),它将 return昨天的日期。
将结果集映射到变量@VarDate
.
在这一步之后还有一个 Execute SQL task
会将此字段更新为 NULL。
其余步骤同上(从DFT位开始)
下次包运行时,如果日期字段没有更新,将按照昨天的日期查询。
我有一个 ssis 包,它在日期参数上运行。如果我们不指定日期,它总是加载昨天日期的数据。如果我们给出任何特定日期,如“2015-05-10”,它应该在该日期加载。我们如何动态地实现这一点(使用包配置)?一旦我们为任何特定日期加载,包应该动态设置为昨天的日期。请指导我实现这一点,因为我是 SSIS 的新手。
提前致谢
向包 ParamDate
添加参数。此参数必须手动提供一个值(例如 03-21-2015)。如果必须考虑昨天的日期,请将其留空(NULL 值)。
现在在你的包中定义一个变量VarDate
像这样表达 VarDate
-
ISNULL(@[$Project::ParamDate])?DATEADD("day", -1, getdate()):@[$Project::ParamDate]
我假设您正在 DFT 中加载数据。
所以在源查询中,你只需要在 where
子句中添加一个额外的条件
SELECT ...... FROM SomeTable WHERE LoadDate = ?
在源代码的 "Parameters..." 部分,将变量 VarDate
分配给 0
。有关如何映射参数的更多详细信息,请参阅 here。
希望对您有所帮助。
编辑 由于这是在 SSIS 2012 下标记的,我的解决方案涉及项目参数,这是项目部署模型下的一个功能。包配置在包部署模型下。
如果您想使用SQL服务器包配置table,那么您可以按照以下步骤操作:
假设 table 的名字是 SSISConfiguration
有一个
Execute SQL task
你从这个 table 读取这个日期的地方。SELECT ISNULL(TstampUpdateDate, DATEADD(dd, -1, GETDATE()) FROM SSISConfiguration
此脚本将从 SSISConfiguration
table 获取 TstampUpdateDate
的值,如果它是 NULL
(在下面设置),它将 return昨天的日期。
将结果集映射到变量
@VarDate
.在这一步之后还有一个
Execute SQL task
会将此字段更新为 NULL。其余步骤同上(从DFT位开始)
下次包运行时,如果日期字段没有更新,将按照昨天的日期查询。