统计 sql 服务器上周的数据

Count data from last week in sql server

我正在尝试统计上周 (周一 - 周日) 的所有数据。但它似乎出于某种原因忽略了星期日,这样我就没有得到正确的计数:

    SET DATEFIRST 1
    Select *
    FROM Products a
    inner join Locations b
    on a.Location = b.LocID
    where b.LocID = 12 AND
    a.Created >= DATEADD(week, DATEDIFF(week,0,GETDATE())-1,-1)
    AND a.Created < DATEADD(week, DATEDIFF(week,0,GETDATE()),-1)

尝试改用星期几。我认为您可能在使用 WEEK 时遇到问题,因为您实际上需要计算:

where a.Created >= (last week Monday) and a.Created < (this week Monday)

这里是使用 DW 的查询:

SET DATEFIRST 1
Select *
FROM Products a
inner join Locations b
on a.Location = b.LocID
where b.LocID = 12 AND
a.Created >= DATEADD(day, -DATEPART(dw, GETDATE())-6, CONVERT(DATE,GETDATE()))
AND a.Created < DATEADD(day, -DATEPART(dw, GETDATE())+1, CONVERT(DATE,GETDATE()))