当我在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'' ')
请提出一些解决方案,我的项目取决于您的答案。
答案 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'