select @ as Date
,dateadd(year,datediff(year,0,@),0) as FirstDayOfYear
,dateadd(year,1+datediff(year,0,@),0)-1 as LastDayOfYear
,dateadd(quarter,datediff(quarter,0,@),0) as FirstDayOfQuarter
,dateadd(quarter,1+datediff(quarter,0,@),0)-1 as LastDayOfQuarter
,dateadd(month,datediff(month,0,@),0) as FirstDayOfMonth
,dateadd(month,1+datediff(month,0,@),0)-1 as LastDayOfMonth
,dateadd(week,datediff(week,0,@),0) as FirstDayOfWeek
,dateadd(week,1+datediff(week,0,@),0)-1 as LastDayOfWeek