我在一张桌子上有一个日期。我试图选择这个日期并将其传递给一个函数,该函数根据此日期参数从另一个系统中提取数据。我认为它应该是这样的。
Declare @dateCurrent as DateTime
Set @dateCurrent = MyDate
SELECT @dateCurrent = DATEADD(Day,-1,CONVERT(VARCHAR(6),@dateCurrent,112)+'01')
Select top 1 ASOFDATE
FROM dbo.fn_ExtractRawData('all', 'all', @dateCurrent)
我设置了MyDate'作为变量。我不确定这是否是正确的方法。或者,我应该只是从表中选择日期,就像这样。
Select AsOfDate
FROM DATE_RAW_DATA
无论我尝试什么,我都会收到SSIS无法执行查询的错误,因为日期参数没有进入。如何才能正确设置此设置?感谢。
答案 0 :(得分:1)
首先,创建一个执行SQL任务,从表中获取日期值并将其保存到变量中。
接下来,创建在第一个任务之后连接的另一个执行SQL任务,然后在查询中使用您的变量。假设您将日期保存在名为MyDate的变量中,则对第二个SQL任务的查询将如下所示:
SELECT TOP 1 ASOFDATE
FROM dbo.fn_ExtractRawData('all', 'all', DATEADD(DAY,-1,CONVERT(VARCHAR(6),?,112)+'01'))
查询中的问号意味着您将使用该值的输入参数。因此,一旦设置了SQLStatement字段值,请单击"参数映射" “执行SQL任务编辑器”左窗格中的选项。对于"变量名称",从下拉列表中选择您的变量,并选择"参数名称" put 0(对应于查询中的第一个问号)。确保正确设置了可变数据类型和大小。