Date=convert(varchar(10),'+@birthday+',120)

解决方案 »

  1.   

    declare @sql varchar(8000)
    set @sql='select distinct top 10 Code from student where Code is not null and Name='''+@name+''' 
    and Date=convert(varchar,'''+@birthday+''',111)
      

  2.   

    declare  
     @name char(50),
     @birthday  datetimeset  @name ='Mary'
    set  @birthday ='1986-04-05'
    declare @sql varchar(8000)
    set @sql='
    select distinct top 10 Code
    from student 
    where Code is not null
     and Name='+@name+' 
    and Date=convert(varchar,Convert(datetime,'''+Convert(nvarchar,@birthday)+'''),111), 
    '
    print @sql-- 这样试试select convert(varchar,Convert(datetime,'Apr  5 1986 12:00AM'),111)
    --
    1986/04/05
      

  3.   

    and Date='+convert(varchar,@birthday,111)+',---这句改了
    或者将 @birthday  datetime改为  @birthday  varchar(20)