set SqlWhr= @SqlWhr + ' and CreateDate<=Convert(datetime,'''+@selectedDate+''',120)';  

解决方案 »

  1.   

    还是报错,还是从字符串转换日期和/或时间时,转换失败。如果EXEC @return_value = [dbo].[usp_InventoryAnalysis]
    @selectedDate ='2014-03-13'改为@selectedDate = N'''2014-03-12''',就报从数据类型 nvarchar 转换为 datetime 时出错。
      

  2.   

    把你给变量赋值的那段SQL单独放出来,变量@selectedDate定义的放前边,类似declare @sqlwhr nvarchar(max)
    declare @selectedDate ...
    set @selectedDate = '2014-03-13'
    set @sqlwhr = ... +@selectedDate+ ...print(@sqlwhr)打印下看看这段@sqlwhr中查询的条件,把打印的贴下。
      

  3.   

    把语句print出来把,或者用sql profiler 来跟踪一下
      

  4.   

     变成了and CustomerCode in('000') and WareHourseCode in('CK001') and CreateDate<=03 12 2014 12:00AM Group by ....
      

  5.   

    OK,我解决了。
    上面@selectedDate datetime=null;改为@selectedDate varchar(max)=null;
    下面直接set  @SqlWhr= @SqlWhr +' and CreateDate<='+@selectedDate;  
    表里CreateDate是'yyyy-MM-dd',那么只要@selectedDate输入时格式'yyyy-MM-dd'就行了