[英]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.