数据流给出查询错误

时间:2014-06-12 08:58:00

标签: ssis sql-server-2008-r2 sql-server-2012

我有一个带有数据流的SSIS包,可以从一个数据库复制到另一个数据库。

最初它是从SQL2012到SQL2012的副本。这没问题。现在我需要更改需求并需要从SQL2008 R2复制到SQL2012。该查询现在生成此错误:

Implicit conversion from data type datetime to int is not allowed. Use the CONVERT function to run this query.

导致它的查询包含我在OLEDB源中分配的参数(类型整数):

SELECT MetricValues.MetricValue_RunId, MetricValues.MetricValue_SampleNumber, MetricValues.MetricValue_MetricId, MetricValues.MetricValue_Value
FROM MetricValues 
    INNER JOIN Runs ON MetricValues.MetricValue_RunId = Runs.Run_id 
    INNER JOIN STR_RequiredMetricList ON MetricValues.MetricValue_MetricId = STR_RequiredMetricList.id
WHERE (Runs.Run_endtime > DATEADD([day],  (?*-1), GETDATE()))

它只是获得小于[参数]天的记录。

有什么关于从2008年到2012年的复制,我需要知道可能导致此错误吗?

1 个答案:

答案 0 :(得分:0)

不是真正的解决方案,但作为一种解决方法,我创建了字符串包级别变量并使用脚本对象用查询和变量填充它们。然后我在数据源中引用了查询。

相关问题