--try
if @publishdate IS NOT NULL and @publishdate <>''
begin
set @sqlStr=' and PublishDate= '+ Convert(varchar(10),@publishdate,120)
end
if @publishdate IS NOT NULL and @publishdate <>''
begin
set @sqlStr=' and PublishDate= '+ Convert(varchar(10),@publishdate,120)
end
print(@sqlStr)
看一下你的@sqlStr 最後是什麽語句.然後執行一下這個語句,看是否符合你的要求