DECLARE @DATE  SMALLDATETIME
DECLARE @DAYS  INT
SET @DAYS=7
SET @DATE=GETDATE()SET DATEFIRST 1
WHILE @DAYS>=1
BEGIN
     IF DATEPART(DW,@DATE)=7 AND @DATE<GETDATE()
       BREAK 
   SET @DATE=DATEADD(DAY,-1,@DATE)   
   SET @DAYS=@DAYS-1
ENDSELECT @DATE
/*
2008-11-23 17:57:00
*/

解决方案 »

  1.   

    declare @date datetime
    set @date=getdate()
    select  @date-7-datepart(dw,@date-1+@@datefirst)2008-11-16 18:03:44.530
      

  2.   

    http://blog.csdn.net/kangsoft/archive/2005/02/16/289107.aspx 学习吧,散分!
      

  3.   

    SELECT DATEADD(wk,DATEDIFF(wk,1,getdate()),-1)  
      

  4.   


    DECLARE @DATE  SMALLDATETIME
    DECLARE @DAYS  INT
    SET @DAYS=7
    SET @DATE=GETDATE()SET DATEFIRST 1
    WHILE @DAYS>=1
    BEGIN
         IF DATEPART(DW,@DATE)=7 AND @DATE<GETDATE()
           BREAK 
       SET @DATE=DATEADD(DAY,-1,@DATE)   
       SET @DAYS=@DAYS-1
    ENDSELECT @DATE
      

  5.   

    select dateadd(day,8-datepart(weekday,getdate()),dateadd(day,-7,getdate()))