Sql 如何进行查询以返回过去7天(星期日除外)的数据

Sql 如何进行查询以返回过去7天(星期日除外)的数据,sql,asp.net,sql-server,Sql,Asp.net,Sql Server,我有一个simples查询,它返回元素列表并创建这些元素的日期 我如何做甜菜糖或其他只返回最后7天而不考虑周日的事情?不考虑周日的最后7天将是一周中除周一以外任何一天的最后8天。因此,这应该是可行的: where datecol >= cast(getdate() - 8 as date) or (datename(dw, getdate()) = 'Monday' and datecol >= cast(getdate() - 9 as date)) 因

我有一个simples查询,它返回元素列表并创建这些元素的日期


我如何做甜菜糖或其他只返回最后7天而不考虑周日的事情?

不考虑周日的最后7天将是一周中除周一以外任何一天的最后8天。因此,这应该是可行的:

where datecol >= cast(getdate() - 8 as date) or
      (datename(dw, getdate()) = 'Monday' and
       datecol >= cast(getdate() - 9 as date))
因为你没有发布你的查询,所以我看不出你在期待什么

但这里有一个示例,我将最后7+2天存储在一个表中,其中7 周天数为天,周结束日期为2天


如果我正确理解这个问题,这里有一个更简单的选择

WHERE a.datecol BETWEEN DATEADD(DAY, -7, GETDATE()) AND GETDATE()
AND  DATEName(WEEKDAY, a.datecol) <> 'Sunday'

如果datecolumn有一个时间组件,那么查询可能需要稍微调整一下,以便从where子句中删除时间组件你的问题模棱两可。你应该提供样本数据和期望的结果。我不是这样理解他的期望结果的。我想他想要过去七天的所有数据,除了星期天的数据。@TabAlleman。对我来说,这是一个非常有趣的解释。我没有考虑过这一点,但我仍然坚持8天,周日不算在内。这个问题显然模棱两可。伟人所见略同。。。。我认为您需要返回8天,扣除一个星期天,然后您就有7天的数据。请求者应该运行其中一个查询,查看结果,并在datediff部分中输入适合他们的天数。
select * from dbo.x8 
  where DATENAME(weekday,date1)<>'Sunday'
 and [date1] between   DATEDIFF(DD,GETDATE(),-7)   and GETDATE() 
WHERE a.datecol BETWEEN DATEADD(DAY, -7, GETDATE()) AND GETDATE()
AND  DATEName(WEEKDAY, a.datecol) <> 'Sunday'