Previous Monday & previous Sunday's date based on today's date

后端 未结 6 1547
情话喂你
情话喂你 2020-12-05 00:46

I need the correct syntax to give me :

  1. Previous week\'s Monday\'s date based on the current date/time using GETDATE()
  2. Previous week\'s Su
6条回答
  •  北荒
    北荒 (楼主)
    2020-12-05 01:03

    Easy:

    --start of last week
    SELECT DATEADD(wk, DATEDIFF(wk, 6, GETDATE()), 0)
    
    --end of last week
    SELECT DATEADD(wk, DATEDIFF(wk, 6, GETDATE()), 6)
    

    EDIT:

    The below will handle the Sunday date issue.

    DECLARE @input varchar(10)
    --SET @input = '9/9/2012' -- simulates a Sunday
    SET @input = GETDATE()
    
    --start of last week
    SELECT DATEADD(wk, DATEDIFF(wk, 6, 
    CASE DATEPART(dw,@input)
    WHEN 1 THEN DATEADD(d,-1,@input)
    ELSE @input
    END
    ), 0)
    
    --end of last week
    SELECT DATEADD(wk, DATEDIFF(wk, 6, 
    CASE DATEPART(dw,@input)
    WHEN 1 THEN DATEADD(d,-1,@input)
    ELSE @input
    END
    ), 6)
    

提交回复
热议问题