SQL:一周的第一天星期一

SQL:一周的第一天星期一,sql,sql-server,reporting-services,Sql,Sql Server,Reporting Services,我想显示周一为一周的第一天,周日为一周的最后一天。 我正在为该报表使用报表服务器 我的问题是: Select Datum, Sum(Prod) as Prod FROM ( Select intervaldate as Datum, Sum(case when TabName = 'Produzierte Dosen' then DisplayUnits else 0 end) as Prod from vwOeeIntervalCount where IntervalDa

我想显示周一为一周的第一天,周日为一周的最后一天。 我正在为该报表使用报表服务器

我的问题是:

   Select
Datum,
Sum(Prod) as Prod

FROM ( 
Select 

intervaldate as Datum,
Sum(case when TabName = 'Produzierte Dosen' then DisplayUnits else 0 end) as Prod


from vwOeeIntervalCount 
where 
IntervalDateWeek >=  dateadd(wk, datediff(wk, 0, getdate()) - 1, 0)  
and IntervalDateWeek < dateadd(wk, datediff(wk, 0, getdate()), 0)
and  IntervalDate >= dateadd(day,datediff(day,0,GETDATE())-6,0)
AND IntervalDate < dateadd(day,datediff(day,0,GETDATE()),0) 

and CalculationName = 'Packaging'

group by intervaldate
)c

group by Datum
编辑: 对不起,这是我的问题。 我想将星期一显示为一周的第一天。我的查询将星期日显示为一周的第一天。
如何执行此操作?

默认情况下,MS SQL Server已将星期日配置为一周的第一天

您可以使用以下命令将每周第一天的服务器配置设置为任意一天:

SET DATEFIRST { number | @number_var } 

Value   First day of the week is
1   Monday
2   Tuesday
3   Wednesday
4   Thursday
5   Friday
6   Saturday
7 (default, U.S. English)   Sunday

来源:

您可以在本周使用此选项:

/*-- Week Start
--1->Sunday --2->Monday....*/
SELECT CAST(DATEADD(dd, -(DATEPART(dw,  GETDATE()))+2, GETDATE()) AS DATE) [WeekStart], 
       CAST(DATEADD(dd, 8-(DATEPART(dw, GETDATE())), GETDATE()) AS DATE) [WeekEnd]
  /*-- Week End
  --7->Saturday --8-> Sunday...*/
今天运行此将产生以下结果:

WeekStart  WeekEnd
---------- ----------
2018-02-26 2018-03-04

如果您的表中有日期,您可以使用它们来代替
GETDATE()

这里的问题是什么?您需要在问题中添加更多详细信息以获得帮助。在
IntervalDateWeek
IntervalWeek
中举行什么活动?
Prod
来自哪里?为什么您的输出不正确?你的问题是什么?我不确定我是否遵循了你的要求,但也许你正在寻找
SET DATEFIRST 1
。看见
WeekStart  WeekEnd
---------- ----------
2018-02-26 2018-03-04