Pierwszy dzień miesiąca: SELECT DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0)
Ostatni dzień miesiąca: SELECT DATEADD(ms, -3, DATEADD(mm, DATEDIFF(m, 0, GETDATE()) + 1, 0))
Zastąp wartość zmiennej DateTime dla GETDATE().
Dostałem to dawno temu od ta bardzo przydatna strona który ma całą masę innych obliczeń dat, takich jak "Poniedziałek bieżącego tygodnia" i "Pierwszy poniedziałek miesiąca".