--Early this month
Select DATEADD (Mm,datediff (Mm,0,getdate ()), 0)
--month End
Select DATEADD (Dd,-1,dateadd (Month,1+datediff (Month,0,getdate ()), 0))
--Set the first day of the week to Monday
SET Datefirst 1
DECLARE @cur_week1 varchar (10)
--the first day of the week
Select @cur_week1 =dateadd (Day,1-datepart (Weekday,getdate ()), GETDATE ())
--Take nearly four weeks (Nature week) of the weekly start date
--Push forward the first day of the first week, the last day
Select DATEADD (week,-1, @cur_week1)
Select DATEADD (Dd,6,dateadd (week,-1, @cur_week1))
--Push forward the first day of the two week, the last day
Select DATEADD (week,-2, @cur_week1)
Select DATEADD (Dd,6,dateadd (week,-2, @cur_week1))
--Push forward the first day of the third week, the last day
Select DATEADD (week,-3, @cur_week1)
Select DATEADD (Dd,6,dateadd (week,-3, @cur_week1))
--Push forward the first day of the fourth week, the last day
Select DATEADD (week,-4, @cur_week1)
Select DATEADD (Dd,6,dateadd (week,-4, @cur_week1))