请问怎样得到上周的星期一的日期,谢谢
比如今天1128,那么我怎么得到11月17日呢
谢谢

解决方案 »

  1.   

    declare @date datetime
    set @date='2008-11-28'
    select @date-7+(2-datepart(dw,@date+@@datefirst))2008-11-17 00:00:00.000
      

  2.   

    SELECT  DATEADD(wk,  DATEDIFF(wk,0,getdate()),  0)  - 7
      

  3.   

    * SQL Server日期计算
          a. 一个月的第一天
          SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
          b. 本周的星期一
          SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
          c. 一年的第一天
          SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
          d. 季度的第一天
          SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
          e. 上个月的最后一天
          SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
          f. 去年的最后一天
          SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
          g. 本月的最后一天
          SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
          h. 本月的第一个星期一
          select DATEADD(wk, DATEDIFF(wk,0,
          dateadd(dd,6-datepart(day,getdate()),getdate())
          ), 0)
          i. 本年的最后一天
          SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))。
      

  4.   

    SELECT  DATEADD(wk,  DATEDIFF(wk,0,getdate()),  0)  - 7
      

  5.   

    SELECT  DATEADD(wk,  DATEDIFF(wk,0,getdate()),  0)  - 7
    /*
    -----------------------
    2008-11-17 00:00:00.000(1 行受影响
    */
    SELECT  DATEADD(wk,  DATEDIFF(wk,0,getdate())-1,  0)
    /*
    -----------------------
    2008-11-17 00:00:00.000(1 行受影响
    */