我有一个SSIS包,它使用SQL命令从视图中查询数据。
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 :(得分:0)
我最终使用/ SET将参数传递给dtexec。
然后我使用脚本任务处理日期以处理无效或其他情况。
答案 1 :(得分:0)
为什么不使用ISNULL检查日期?像,
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()))
您可以在Execute SQL任务的参数部分指定这些参数。