dit geeft je de eerste van de maand voor een bepaalde datum
inner selectselect DATEDIFF(MONTH, 0, GETDATE())
geeft het aantal maanden vanaf 01-01-01
hier is het 1350
dit wordt toegevoegd aan 1900-01-01 , maar alleen de maanden
select DATEADD(MONTH,1350,0)
geeft 2012-07-01 00:00:00.000
dat is het begin van de huidige maand.
Ik denk dat dit de meest efficiënte manier is om het begin van een maand voor een bepaalde datum te vinden.