日期:2014-05-18  浏览次数:20424 次

关于SQLServer2000 存储过程
我写了一个简单带输入参数存储过程,但是输入参数赋不上值,程序如下:

create procedure [dbo].[test2]
@date varchar(20)
as
begin
select * from samedayaccinfo
where 日期=@date
end
go

在sqlserver2000中进行如下执行

exec test2 20111231
结果只出来列名,其余数据却查不出来,说明20111231没有赋到日期上,请帮忙解决,谢谢!

------解决方案--------------------
create procedure [dbo].[test2]
@date varchar(8)
as
begin
select * from samedayaccinfo
where 日期>=@date and 日期<convert(char(8),@date+1,112)
end
go

其实你的日期应该是有时间的,不只是日期,你输入日期来比,刚好要20111231日0点0分0秒才查得出结果
------解决方案--------------------
select * from samedayaccinfo
where CONVERT(VARCHAR(10),日期,120)=@date

------解决方案--------------------
你数据库中存储的日期格式是不是20111231(yyyymmdd)这种的,如果不是,查不出来,因为你是varchar类型
------解决方案--------------------
日期转换格式
SQL code

where CONVERT(VARCHAR(10),日期,120)=@date

------解决方案--------------------
SQL code
exec test2 '20111231'