簡體   English   中英

SQL:星期一的第一天

[英]SQL: First day of week Monday

我想將星期一顯示為一周的第一天,將星期日顯示為一周的最后一天。 我正在為此報告使用報告服務器。

我的查詢:

   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

結果如下:

Date                      |Prod 
2018-02-25 00:00:00.000   |1836528
2018-02-26 00:00:00.000   |8131127,99999999

編輯:對不起,這是我的問題。 我想將星期一顯示為一周的第一天。 我的查詢將星期日顯示為一周的第一天。 我怎樣才能做到這一點?

默認情況下,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

來源: https : //docs.microsoft.com/en-us/sql/t-sql/statements/set-datefirst-transact-sql

您可以將其用於本周:

/*-- 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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM