select @execString='select * from report_12590 where left(createtime,10)='''+@monthday+''''

解决方案 »

  1.   

    1、不要写left(createtime,10),应该用convert(varchar(10),createtime,120),明确格式
    2、注意单引号
    select @execString='select * from report_12590 where left(createtime,10)='+@monthday+''
    --〉
    select @execString='select * from report_12590 where convert(varchar(10),createtime,120)='''+@monthday+''''
      

  2.   

    --try
    select @execString='select * from report_12590 where left(createtime,10)='''+@monthday+''''
      

  3.   

    left(createtime,10)改为convert(varchar(10),createtime,120)
      

  4.   

    棒场:又是一个时间转换问题
    楼主参照一下联机帮助(用convert转换时间为字符)
    --select convert(varchar(8),getdate(),112)--112显示格式,8为显示长度
      

  5.   

    另外,最好別用left(createtime,10)這樣比,
    select @execString='select * from report_12590 where convert(datetime,convert(varchar(10),createtime,120))='''+@monthday+''''
      

  6.   

    left(createtime,10)-->
    convert(datetime,convert(varchar(10),createtime,120))