1

当我在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'' ') 

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

4

1 回答 1

0

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

将数据类型 int 转换为日期时间时出错。

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

但由于这不是您得到的错误,因此您将另一个参数作为字符串传递给datetime参数。

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

exec testdatabase.dbo.Proc_Salaryslip_PF 
',',
',',
'5112',
',',
',',
'8',
'2012',
',',
'0',
'1',
A,
20120401,
20130301,
'Y',
'Y',
',A,admin,0,N,',
'18' 
于 2012-11-15T07:04:34.747 回答