有两个条件@begin和@end。
想要实现:
①两个条件都有值或者其中一个有值,就按条件值进行查询;
②没有条件就查询全部。
写存储过程判断开始时间和结束时间是否有值
select * from 表名 where 时间列名 between @begin and @end
select * from 表名 where 时间列名 > 最小值 and 时间列名 < 最大值
CREATE PROCEDURE 存储过程名称
@begin varchar(20)= '' ,
@end varchar(20)= ''
AS
declare @strSQL varchar(6000)=''
declare @strWhere varchar(400)='1=1'
BEGIN
if @begin!=''
begin
set @strWhere=' and 时间列名>'''+@begin+''''
end
if @end !=''
begin
set @strWhere=' and 时间列名<'''+@end+''''
end
set @strSQL='select * from 表名 where '+@strWhere
exec (@strSQL)
END
GO