select date,数据 from 表
where day(now())<=10
and date between DATE_FORMAT(concat(year(now()),'-',month(now())-1,'-','20'),'%Y-%m-%d')
and DATE_FORMAT(concat(year(now()),'-',month(now()),'-','10'),'%Y-%m-%d')
union all
select date ,数据 from 表
where day(now())>10
and date between
DATE_FORMAT(concat(year(now()),'-',month(now()),'-','1'),'%Y-%m-%d')
and DATE_FORMAT(concat(year(now()),'-',month(now())+1,'-','1'),'%Y-%m-%d') - interval 1 day
我是用mysql写的,原理是相同的,sql server语法可能有点不同