我有使用SQLServer 2012和具有变量:持有DateTime的clientlastsync并执行任务查询如下
select * from clnt where opendt > convert(varchar, CAST (@[User::clientLastSync] as date),101)
如果我执行软件包,则出现以下错误:
错误:SSIS错误代码DTS_E_OLEDBERROR。OLE DB错误具有 发生。错误代码:0x80040E07。有OLE DB记录可用。 资料来源:" Microsoft SQL Server本地客户端11.0" Hresult: 0x80040E07描述:"转换日期时转换失败 和/或字符串的时间。"。
您可以建议这里有什么问题。谢谢
您以 ?
中的ssis中的变量传递,然后在参数映射窗格中定义变量。
我假设您不是 silly 足以将您的日期存储为varchar
,因此您的直接输入SQL在执行SQL任务中:
SELECT * FROM clnt WHERE opendt > ?;
然后,您需要转到参数映射窗格,然后单击添加。在变量名称列中选择变量的名称(可能是User::clientLastSync
(。然后输入作为方向。DBTIMESTAMP
作为您的数据类型和参数为0(如果您有其他参数为1、2、3等,则它们会在您的查询中显示的顺序(。将参数大小为-1。
这应该按照您的意图工作。