存储过程,日期问题
下面是存储过程,我想选取date_qi到date_zhi之间的数据 
 数据库中日期存储的就是datetime型的 
 日期能够直接比较吗?   
 create      proc   test8 
 	@vproject_id   varchar(30), 
 	@vpartner_id   varchar(30), 
 	@date_qi   datetime, 
 	@date_zhi   datetime, 
                         @vyeji_return   real=0.0   output 
 as 
 declare   @temp1   varchar(30)	 
 declare   my_cursor   cursor   for   		 
 	select   income_id				 
 	from   project_income_table 
 	where   project_id=@vproject_id 
 open   my_cursor						 
 fetch   next   from   my_cursor   into   @temp1 
 	while   @@fetch_status=0			 
 	begin 
 		declare   @vyeji_temp   real	 
 		select   @vyeji_temp=sum(income_value)       
 		from      income_value_table	                
 		where      	income_id=@temp1 
 		                        and   partner_id=@vpartner_id 
 			and   income_date   between   @date_qi   and   @date_zhi--这一句有问题,date_qi给2007-5-1,date_zhi给2007-5-3,查不出数据,如果不用参数,直接写‘2007-5-1’和‘2007-5-3’,没问题 
 	set   @vyeji_return   =   @vyeji_return   +   @vyeji_temp  				 
 	fetch   next   from   my_cursor   into   @temp1	 
 	end 
 close   my_cursor	 
 deallocate   my_cursor 
------解决方案--------------------存儲過程沒有看到問題,你執行的代碼是怎樣的?   
 時間的前後要加上單引號的。   
 eg:     
 Declare @vyeji_return real 
 EXEC test8  '1111 ',  '2222 ',  '2007-5-1 ',  '2007-5-3 ', @vyeji_return Output
------解决方案--------------------	begin 
 		declare @vyeji_temp real	 
 		select @vyeji_temp=sum(income_value)   
 		from  income_value_table	      
 		where  	income_id=@temp1 
 		        and partner_id=@vpartner_id 
 			and income_date between @date_qi and @date_zhi 
 建议将以上部分改成:   
 begin 
 	declare @vyeji_temp real	 
 	EXEC( "select @vyeji_temp=sum(income_value)   
 	from  income_value_table	      
 	where  	income_id= "+ @temp1 
 	        + "and partner_id= "+ @vpartner_id + " 
 		and income_date between  "+ @date_qi + " and  "+ @date_zhi)