我着里有一段代码你看看吧.
declare @dateX smalldatetime
set @dateX = '2002-03-29'
select dateadd(day, case when datepart(weekday,@dateX) = 7 then 7 else 1 end - datepart(weekday,@dateX) ,@dateX)  ,
dateadd(day, case when datepart(weekday,@dateX) = 7 then 8 else 0 end - datepart(weekday,@dateX) ,@dateX)

解决方案 »

  1.   

    SET DATEFIRST 1
    Select DateAdd(d,-(DatePart(dw,GetDate())-1),GetDate()) --本周周一日期Select DateAdd(d,7-(DatePart(dw,GetDate())),GetDate())  ----本周周日日期
      

  2.   

    select getdate()-datepart(dw,getdate()),getdate()+7-datepart(dw,getdate())将getdate()替换为你的日期就行了
      

  3.   

    declare @dateX smalldatetime
    set @dateX = '2003-07-21'
    select datepart(weekday,@dateX)
    select dateadd(day ,case when datepart(weekday,@dateX)<>1 then  8-datepart(weekday,@dateX) else 0 end ,@dateX) as sun
    select dateadd(day ,case when datepart(weekday,@dateX)<>2 then  2-datepart(weekday,@dateX) else 0 end ,@dateX) as mon我测了一下楼上各位的怎么觉得不对,这个是我写的。