Jon*_*nas 1 sql-server date week-number
我有一个查询来显示付款次数,按 SQL Server 2012 中的周数分组。
SELECT
DATEPART(wk, FPP.UPLOAD_DATE) AS "Date by week",
COUNT(DISTINCT FPP.ID) AS "Number of Bills")
FROM
FACT_PAY_PAYMENT FPP
GROUP BY
DATEPART(wk, FPP.UPLOAD_DATE);
Run Code Online (Sandbox Code Playgroud)
小问题,当我执行此代码时,我收到周数,但我想要一周的开始日期。
例如,现在我收到以下输出:
Date by week Number of Bills
---------------------------------
40 7
Run Code Online (Sandbox Code Playgroud)
我想要收到的是:
Date by week Number of Bills
---------------------------------
2015-09-28 7
Run Code Online (Sandbox Code Playgroud)
首先你必须确定一周的第一个日期是什么SELECT @@DATEFIRST;
,在我的机器中Sunday
是First day of week
DECLARE @dt DATE = '2015-09-08';
SELECT DATEADD(wk,DATEDIFF(wk,7,@dt),6) AS Datebyweek
Run Code Online (Sandbox Code Playgroud)
结果
Datebyweek
2015-09-06 00:00:00.000
Run Code Online (Sandbox Code Playgroud)