为何我的存储过程这样写(如下),查不出记录,明明库里有符合条件的记录:CREATE PROCEDURE jie_deng222
@data char(50),
@area char(10),
@date1 char(20),
--@date2 char(20),
@nian char(4)
as
declare
@sql as varchar (600)
set @sql='select pz_tj,pz_zhenduan,pz_leibie, pz_zl_type from '+@data+'..p_zl_zhenliao a,'+@data+'..p_ziliao b where a.j_code=b.j_code and a.a_code ='+ @area +' and a.pz_add_date>='+@date1+' and a.year='+@nian +' and a.pz_add_date<='+@date2
EXECUTE (@sql)
GO
但是去掉后边的 +'and a.pz_add_date<='+@date2 而只用 a.pz_add_date>='+@date1就能出记录!!为什末?要想两个条件都用,如何写!?
那位高手帮帮忙!30分相送!!
@data char(50),
@area char(10),
@date1 char(20),
--@date2 char(20),
@nian char(4)
as
declare
@sql as varchar (600)
set @sql='select pz_tj,pz_zhenduan,pz_leibie, pz_zl_type from '+@data+'..p_zl_zhenliao a,'+@data+'..p_ziliao b where a.j_code=b.j_code and a.a_code ='+ @area +' and a.pz_add_date>='+@date1+' and a.year='+@nian +' and a.pz_add_date<='+@date2
EXECUTE (@sql)
GO
但是去掉后边的 +'and a.pz_add_date<='+@date2 而只用 a.pz_add_date>='+@date1就能出记录!!为什末?要想两个条件都用,如何写!?
那位高手帮帮忙!30分相送!!
改成:
and a.pz_add_date<='+ @date2 + "'"
在调用执行exec(@sql)前,看看@sql的实际值
@data char(60),
@area char(10),
@date1 char(20),
@date2 char(20),
@nian char(4)
as
declare
@sql as varchar (600)
set @sql='select pz_tj,pz_zhenduan,pz_leibie,pz_zl_type from '+@data+'..p_zl_zhenliao a,'+ @data +'..p_ziliao b where a.j_code=b.j_code and a.a_code =' +@area+' and a.pz_add_date>='''+@date1+''' and a.pz_add_date<='''+@date2+''' and a.year='+ @nian
EXECUTE (@sql)
GO
就行了!!
谢谢各位参与,马上结分!!