declare @MyDate datetimeset @MyDate = '2012-12-29'select DATEADD(dd, - (DAY(DATEADD(mm, 1, @MyDate )) - 1), DATEADD(mm, 1, @MyDate ))
declare @MyDate datetime;set @MyDate = '20121229';select dateadd(mm, datediff(mm,cast('19000101' as datetime),@MyDate) + 1, cast('19000101' as datetime)), @MyDate;