在OPENROWSET查询中传递datetime参数

时间:2012-11-15 06:47:53

标签: sql-server-2008 openrowset

当我在OPENROWSET查询中传递datetime参数时,出现以下错误:

  

从字符串

转换日期和/或时间时转换失败
SELECT * FROM OPENROWSET('SQLNCLI',
    'SERVER=localhost;UID=test;PWD=test', 
    'set FMTONLY OFF exec testdatabase.dbo.Proc_Salaryslip_PF '','','','',''5112'','','','','',''8'',''2012'','','',''0'',''1'',A,20120401,20130301,''Y'',''Y'','',A,admin,0,N,'',''18'' ') 

请提出一些解决方案,我的项目取决于您的答案。

1 个答案:

答案 0 :(得分:0)

这些看起来很可疑20120401,20130301。如果将它们传递给datetime参数,您将获得:

  

将数据类型int转换为datetime时出错。

因为您将它们作为整数而不是字符串文字传递。要解决这个问题,你必须将它们称为字符串。

但是,因为那不是你得到的错误,你将另一个参数作为字符串传递给datetime参数。

这是您使用的参数列表,每个参数一行。检查您的程序声明。

exec testdatabase.dbo.Proc_Salaryslip_PF 
',',
',',
'5112',
',',
',',
'8',
'2012',
',',
'0',
'1',
A,
20120401,
20130301,
'Y',
'Y',
',A,admin,0,N,',
'18'