gpt4 book ai didi

sql - 使用 DatePart(ww, Date) 时 T-SQL 显示周结束数据

转载 作者:行者123 更新时间:2023-12-04 23:46:55 25 4
gpt4 key购买 nike

我有一个查询,我使用 DatePart(ww , [TimeEntryDate]) 作为列按周分组,它返回周数。我想显示一周的结束日期,并希望它始终是星期六。

这是完整的查询

SELECT 
DatePart(year , [TimeEntryDate]) [YEAR],
DatePart(ww , [TimeEntryDate]) Week,
CategoryId,
SUM(TimeEntryDuration) "Total Hours"

FROM [TIMETRACKER].[dbo].[aspnet_starterkits_TimeEntry]
GROUP BY DatePart(year , [TimeEntryDate]), DatePart(ww , [TimeEntryDate]) , CategoryId
ORDER BY 1,2,3

data
Year Week Category Total Hours
2010 1 1 10
2010 2 1 12

最佳答案

你可以试试下面的方法

SELECT DatePart(year , [TimeEntryDate]) [YEAR],
DatePart(ww , [TimeEntryDate]) Week,
DATEADD(d, 7 - DATEPART(DW, [TimeEntryDate]), [TimeEntryDate]) as WeekEnding,
CategoryId,
SUM(TimeEntryDuration) "Total Hours"
FROM [TIMETRACKER].[dbo].[aspnet_starterkits_TimeEntry]
GROUP BY DatePart(year , [TimeEntryDate]), DatePart(ww , [TimeEntryDate]) , CategoryId
ORDER BY 1,2,3

编辑:开始日期的设置基于您的语言设置。美国英语默认为 7,星期日,但您需要验证您的设置并相应地调整计算。您可以使用

验证您的设置以确定哪一天是一周的开始
SELECT @@DATEFIRST;

此查询将说明差异:

SET LANGUAGE Italian;
GO
SELECT @@DATEFIRST;
GO
SET LANGUAGE us_english;
GO
SELECT @@DATEFIRST;

您还可以按如下方式设置您的周开始日期。

SET DATEFIRST 1

关于sql - 使用 DatePart(ww, Date) 时 T-SQL 显示周结束数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6864734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com