2017-07-03 63 views
0

我想要从上周的所有数据做一个计数(星期一 - 星期日)。但它似乎无视星期天出于某种原因,这种方式我没有得到正确的计数:从上周在sql服务器计数数据

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) 
+1

SET DATEFIRST 1 选择DATEADD(周,DATEDIFF(周,0,GETDATE()) - 1,-1) ,DATEADD(周,DATEDIFF(周,0,GETDATE ()), - 1)当你运行它时,你应该明白为什么你没有得到星期天。 – SteveB

回答

0

尝试使用星期几代替。我想你可能有使用WEEK麻烦的,因为你确实需要计算:

其中a.Created> =(上周星期一)和a.Created <(本周日)

这里是查询中使用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())) 
+0

感谢哥们!完美的作品! – MishMish