2009-08-19 146 views
0

我有一个SSIS包,它使用SQL命令从视图查询数据。将查询参数传递给SSIS

SQL命令看起来是这样的:

SELECT from myView WHERE dateEntered >= GetDate() AND dateEntered < GetDate() + 1 

现在我希望能够到指定的开始日期和结束日期,以便查询作为表现:

SELECT from myView WHERE dateEntered >= startDate AND dateEntered < endDate 

但是,如果开始并没有提供结束日期我需要使用今天的日期和今天的日期+ 1

什么是在SSIS包中执行此操作的最佳方法?

我无法更改视图,因此必须在SSIS中关闭视图或使用变量。我对SSIS不太熟悉,不确定在工具箱中是否有某些东西可以让我处理日期变量,然后在SQL命令中使用它?

回答

0

我最终使用/ SET将参数传递给了dtexec。

然后,我使用脚本任务来处理日期,以照顾无效或其他情况。

0

为什么不使用ISNULL检查日期? Like,

SELECT * 
FROM myView 
WHERE dateEntered >= ISNULL(startDate,GETDATE()) 
    AND dateEntered < ISNULL(endDate,DATEADD(1,DAY,GETDATE())) 

然后,您可以将开始和结束日期作为参数传递给来自SSIS的查询。

SELECT * 
FROM myView 
WHERE dateEntered >= ISNULL(?,GETDATE()) 
    AND dateEntered < ISNULL(?,DATEADD(1,DAY,GETDATE())) 

您可以在执行SQL任务的参数部分指定这些参数。