我在一个表中设置了一列名为“rq”,顾名思义就是用来存储日期的,数据类型是char(注意,这里数据类型不是datetime,但我又不能把它改为datetime)
那么,现在我需要在存储过程中设置两个参数:
@StartDate datetime,
@EndDate datetime,
以查询在这两个日期参数的中间的rq
set @sql=@sql+' where rq>='''+convert(nvarchar,@StartDate)+''' and rq<='''+convert(nvarchar,@EndDate)+''''
但是因为rq是char格式的,所以查不了
我想问的是,如何才能将rq在存储过程中化为datetime格式一样,将它的数据查询出来,存储过程应该如何写
望指点迷津
那么,现在我需要在存储过程中设置两个参数:
@StartDate datetime,
@EndDate datetime,
以查询在这两个日期参数的中间的rq
set @sql=@sql+' where rq>='''+convert(nvarchar,@StartDate)+''' and rq<='''+convert(nvarchar,@EndDate)+''''
但是因为rq是char格式的,所以查不了
我想问的是,如何才能将rq在存储过程中化为datetime格式一样,将它的数据查询出来,存储过程应该如何写
望指点迷津
->
select @sql=@sql+' where cast(rq as datetime)>@StartDate and cast(rq as datetime)<@enddate'
再用sp_executeSql给对数赋值。
或者:@sql=@sql+' where cast(rq as datetime)>'''+@StartDate+''' and cast(rq as datetime)'+'''<@enddate'+''''
如果是 2009-10-31那:set @sql=@sql+' where rq>='''+convert(char(10),@StartDate,120))+''' and rq <='''+convert(char(10),@EndDate,120)+''''