不太清楚您想使用什么日历周规则,所以假设您想要最简单的(FirstDay
),即像这样的公式:
Week = 1 + (DateTime.DayOfYear - 1) / 7
EF Core支持将DayOfWeek
翻译成SQL,因此您可以使用类似以下内容的语句(不确定是否需要Year
):
.GroupBy(g => new { g.Trsdt.Year, Week = 1 + (g.Trsdt.DayOfYear - 1) / 7 })
DayOfWeek
的转换。顺便说一下,至少有两个 MySQL 数据库提供程序 - 一个来自 Oracle,另一个叫做 Pomelo,不确定你使用的是哪一个,但总的来说 Pomelo 支持更好。 - Ivan Stoev .GroupBy(
g => CultureInfo.CurrentCulture.Calendar.GetWeekOfYear( g.Trsdt,
CalendarWeekRule.FirstDay,DayOfWeek.Monday )
)