select cast(convert(varchar(7),dateadd(mm,1,'2012-02-04'),120) + '-01' as datetime) - 1; 红色部分为传入的日期值; 下图为执行效果: