select min(dateadd(day,t,getdate())),max(dateadd(day,t,getdate())) from ( select 1 as t union all select 2 as t union all select 3 as t union all select 4 as t union all select 5 as t union all select 6 as t union all select 7 as t union all select 0 as t union all select -1 as t union all select -2 as t union all select -3 as t union all select -4 as t union all select -5 as t union all select -6 as t union all select -7 as t ) as a where datepart(week,dateadd(day,t,getdate())) =datepart(week,getdate())
select dateadd(d,datepart(week,getdate())*7-7,'2006-1-1')
from
(
select 1 as t
union all
select 2 as t
union all
select 3 as t
union all
select 4 as t
union all
select 5 as t
union all
select 6 as t
union all
select 7 as t
union all
select 0 as t
union all
select -1 as t
union all
select -2 as t
union all
select -3 as t
union all
select -4 as t
union all
select -5 as t
union all
select -6 as t
union all
select -7 as t
) as a
where datepart(week,dateadd(day,t,getdate()))
=datepart(week,getdate())