如何使用 SQL Server 查找周一至周五的上周日期?

Pri*_*ton 11 sql sql-server

我想找到上周的日期

SELECT *
FROM Table
Where [Date] Between '04-Jan-2016' AND '15-Jan-2016'
Run Code Online (Sandbox Code Playgroud)

每次运行 SQL 查询时,它都需要显示last week.

Wil*_*eng 6

希望以下是你想要的,

--START OF LAST WEEK    
SELECT DATEADD(wk, DATEDIFF(wk, 6, GETDATE()), 0)

--END OF LAST WEEK    
SELECT DATEADD(wk, DATEDIFF(wk, 6, GETDATE()), 4)

DECLARE @input varchar(10)
--SET @input = '01/10/2016' 
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
), 4)
Run Code Online (Sandbox Code Playgroud)


Pri*_*ton 5

---要在 SQL Server 中获取上周的第一天,请使用以下代码:

SELECT DATEADD(wk,DATEDIFF(wk,7,GETDATE()),0)
Run Code Online (Sandbox Code Playgroud)

--获取上周的最后一天:

SELECT DATEADD(wk,DATEDIFF(wk,7,GETDATE()),4)
Run Code Online (Sandbox Code Playgroud)