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+''''
--try select @execString='select * from report_12590 where left(createtime,10)='''+@monthday+''''
另外,最好別用left(createtime,10)這樣比, select @execString='select * from report_12590 where convert(datetime,convert(varchar(10),createtime,120))='''+@monthday+''''
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+''''
select @execString='select * from report_12590 where left(createtime,10)='''+@monthday+''''
楼主参照一下联机帮助(用convert转换时间为字符)
--select convert(varchar(8),getdate(),112)--112显示格式,8为显示长度
select @execString='select * from report_12590 where convert(datetime,convert(varchar(10),createtime,120))='''+@monthday+''''
convert(datetime,convert(varchar(10),createtime,120))