tím získáte první den v měsíci pro dané datum
inner selectselect DATEDIFF(MONTH, 0, GETDATE())
uvede počet měsíců od 1900-01-01
tady je 1350
toto bude přidáno k 1900-01-01 , ale pouze měsíce
select DATEADD(MONTH,1350,0)
dá 2012-07-01 00:00:00.000
což je začátek aktuálního měsíce.
Myslím, že toto je nejefektivnější způsob, jak najít začátek měsíce pro dané datum.