detta ger dig den första i månaden för ett givet datum
inre selectselect DATEDIFF(MONTH, 0, GETDATE())
kommer att ange antalet månader från 1900-01-01
här är det 1350
detta kommer att läggas till 1900-01-01, men bara månaderna
select DATEADD(MONTH,1350,0)
ger 2012-07-01 00:00:00.000
vilket är början av innevarande månad.
Jag tror att detta är det mest effektiva sättet att hitta början på en månad för ett givet datum.