有以下一个存储过程:
create proc F_lostfinebksto @bdate datetime,
@edate datetime,
AS
begin
exec('select a.* from no5.r3mis.dbo.finebk a
where a.docdat>=''@bdate'' and a.docdat<''@edate''
')
end
执行exec f_lostfinebksto '20021028','20021029'
出现如下错误:
"从字符串转换为 datetime 时发生语法错误"
---------------------------------------------------------------
create proc F_lostfinebksto @bdate varchar(20),
@edate varchar(20),
AS
begin
exec('select a.* from no5.r3mis.dbo.finebk a
where a.docdat betwenn '''+@bdate+''' and '''+@edate+'''
')
end
执行exec f_lostfinebksto '2002-10-28','2002-10-29'
---------------------------------------------------------------
struggle_wx (struggle) 的问题:
1、日期格式
2、为什么用''?肯定错了!
3、为什么一定要用exec?直接查询可以么?
sula(hyfhot) 的问题:
struggle_wx (struggle) 的意思是用半开半闭区间b<=x
1<e,你改成了开区间,应该是不合要求的。其它的地方应该是对的。可以参考。 @bdate="" @edate="" a="" a.*="" a.docdat="" as="" begin="" create="" exec('select="" f_lostfinebksto="" from="" no5.r3mis.dbo.finebk="" proc="" varchar(20),="" where="" 略作修改:="">='''+@bdate+''' and a.docdat<'''+@edate+'''
2')
3
4end
5执行exec f_lostfinebksto '2002-10-28','2002-10-29'</e,你改成了开区间,应该是不合要求的。其它的地方应该是对的。可以参考。>