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