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