Hi
For Start and end of the year
select dateadd(d,-datepart(dy,getdate())+1,getdate()) as yearstart,
dateadd(d,-datepart(d,getdate()),dateadd(m,13-datepart(m,getdate()),getdate())) as yearend
For Start and end of the month
select dateadd(day,-(day('2012-10-01')-1),'2012-10-01')
select dateadd(day,-1,dateadd(month,1,dateadd(day,-(day('2012-10-01')-1),'2012-10-01')))
For first day nad last day of week
select DATEADD(DAY, 1- DATEPART(DW, '2012-10-12'), '2012-10-12')
SELECT DATEADD(DAY, 7- DATEPART(DW, '2012-10-12'), '2012-10-12')