exec ('select * from ST_PPTN_R where TM Between ''2015-04-17'' and ''2015-04-19''')
select 'select * from ST_PPTN_R where TM Between '''+DATEADD(D,-1,GETDATE())+''' and ''' + GETDATE()

想达到第一条的效果,可是跟GETDATE()拼接了半天都是提示“从字符串转换日期和/或时间时,转换失败。”
我知道需要用转义符,可是加了三个单引号了,还是不行,该怎么写?
------解决思路----------------------
exec('select * from ST_PPTN_R
where TM Between '''+Convert(varchar(10),DATEADD(D,-1,GETDATE()),120)+
''' and ''' + Convert(varchar(10),GETDATE(),120) + '''')