貌似是少空格:SET @SQL = @SQL+ ' and a.assess_time >" +@assess_starttime+" and a.assess_time<" +@assess_endtime+"'

解决方案 »

  1.   

    SET @SQL = @SQL+ " and a.assess_time '" + @assess_starttime + "' and   a.assess_time<'" + @assess_endtime + "'"
      

  2.   

    SET @SQL = @SQL+ ' and a.assess_time > ''' + @assess_starttime + ''' and   a.assess_time < ''' + @assess_endtime + ''''
      

  3.   

    刚才用了antoniusguo(anton)
    从字符串转换为 datetime 时发生语法错误,大家救救我吧!
      

  4.   

    做个字符转换啊 convert(datetime,S) S是要转换的值
      

  5.   

    SET @SQL = @SQL + ' and (a.assess_time > '''+convert(varchar(10),@assess_starttime)+''' and a.assess_time < '''+convert(varchar(10),@assess_endtime)+''')'   改成这样的
      

  6.   

    类型转换错误,以为你是varchar类型,哈哈
    用convert或者是cast转换成varchar类型就可以了
      

  7.   

    我用下面的还是不行
    SET @SQL = @SQL+ ' and a.assess_time >'''+Convert(varchar(5), @assess_starttime) +'''and   a.assess_time <'''+ Convert(varchar(5),@assess_endtime) +''''
                    
    从字符串转换为 datetime 时发生语法错误