首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

创设的存储过程查不到数据

2013-06-26 
创建的存储过程查不到数据存储[解决办法]declare @start datetimedeclare @stop datetimeselect name 姓名

创建的存储过程查不到数据
存储
[解决办法]
declare @start datetime
declare @stop datetime
select name 姓名,(case when sex=1 then '男' else '女' end)sex ,age 年龄,recdate 记录日期 from t_mz_record
where recdate between @start and @stop and @start=@sdate and @stop=@edate

你的@start ,@stop 没有赋值,所以出来控数据。

[解决办法]
这段条件多余:and @start=@sdate and @stop=@edate
把它去掉就可以工作正常,按照一段日期赛选记录了。
[解决办法]

引用:
这段条件多余:and @start=@sdate and @stop=@edate
把它去掉就可以工作正常,按照一段日期赛选记录了。

参考楼上的答案
[解决办法]
create procedure dbo.lixiu 
@sdate datetime,
@edate datetime这里定义的是外面传进来的参数;
as
declare @start datetime
declare @stop datetime这里定义的是存储过程内部使用的参数,和外面传进来的不一样。
[解决办法]
where recdate between @start and @stop and @start=@sdate and @stop=@edate

这句直接改成

where recdate between @sdate and @edate
[解决办法]
你的where条件可以看作3个条件的联合
(recdate between @start and @stop )and (@start=@sdate) and( @stop=@edate)

@start=@sdate 是判断,不是赋值,
@stop=@edate 也是判断,不是赋值。
[解决办法]
这样试试
alter procedure dbo.lixiu 
@sdate datetime,


@edate datetime
as
select name 姓名,(case when sex=1 then '男' else '女' end)sex ,age 年龄,recdate 记录日期 from t_mz_record
where recdate between @sdate and @edate
order by recdate

热点排行