比如今天是周三,通过getdate()能取出今天的日期,但如何得到上周的周一到上周的周日的日期以及如何得到本周的周一到今天的日期?因为今天也可能是周四或周五,这样如何来取呀?

解决方案 »

  1.   

    --是否要这个--上周的周一
    Select DATEADD(wk, DATEDIFF(wk,0,getdate()),-7)--上周的周日
    Select DATEADD(wk, DATEDIFF(wk,0,getdate()),-1)--本周的周一
    Select DATEADD(wk, DATEDIFF(wk,0,getdate()),0)  --今天的日期
    Select getdate()
      

  2.   

    --1.
    declare @i int
    set @i=2
    while @i<=8
    begin
    select dateadd(day,@i-7-datepart(weekday,getdate()),getdate())
    select @i=@i+1
    end
    --2.
    declare @i int
    set @i=2
    while @i<=8
    begin
    select dateadd(day,@i-datepart(weekday,getdate()),getdate())
    select @i=@i+1
    end
      

  3.   

    本周
    select dateadd(day,7-datepart(weekday,getdate()),getdate())
    select dateadd(day,1-datepart(weekday,getdate()),getdate())上周
    select dateadd(day,-datepart(weekday,getdate()),getdate())
    select dateadd(day,-6-datepart(weekday,getdate()),getdate())
      

  4.   

    declare @lastWeek int,@CurrentWeek int
    select @lastWeek=2,@CurrentWeek=4--星期select dateAdd(Day,-7+@lastWeek-datepart(weekday,getdate()),getdate())
    select dateAdd(Day,+@lastWeek-datepart(weekday,getdate()),getdate())
    /*
    ------------------------------------------------------ 
    2006-05-09 15:27:26.000(1 row(s) affected)                                                       
    ------------------------------------------------------ 
    2006-05-16 15:27:26.000(1 row(s) affected)
    */
      

  5.   

    改一下~
    本周
    select dateadd(day,7-datepart(weekday,getdate())+1,getdate())
    select dateadd(day,1-datepart(weekday,getdate())+1,getdate())
    上周
    select dateadd(day,1-datepart(weekday,getdate()),getdate())
    select dateadd(day,1-datepart(weekday,getdate())+1-7,getdate())
      

  6.   

    本周星期一日期
    select dateadd(day,8-datepart(weekday,getdate()),getdate())
    本周星期日日期
    select dateadd(day,2-datepart(weekday,getdate()),getdate())
    上周星期一日期
    select dateadd(day,1-datepart(weekday,getdate()),getdate())
    上周星期日日期
    select dateadd(day,-5-datepart(weekday,getdate()),getdate())
      

  7.   

    我刷新半天都没看到有一个人回答,结果在论坛点了一下,N个人答了..晕还是贴点儿
    select 本周周一=dateadd(day,-datepart(weekday,getdate())+1,getdate()),
    本周周末=dateadd(day,7-datepart(weekday,getdate())+1,getdate())