【问题标题】:GROUP BY WEEK EF Core 2.1按周分组 EF Core 2.1
【发布时间】:2018-11-14 19:03:01
【问题描述】:

我需要根据注册日期每周分组吗?

【问题讨论】:

  • 我认为您需要研究如何在 linq 中进行分组,这看起来不对,更有趣的是我什至没有看到您的分组中的注册日期。我建议你下载 linqpad 并让它在其中工作。另外为了清楚你的意图是什么,只需提供你想要 linq 的 SQL 来努力找出你想要的东西
  • 日期是Trsdt,也符合条件

标签: c# .net entity-framework entity-framework-core


【解决方案1】:

不太清楚CalendarWeekRule 有什么想法,所以假设你想要最简单的 (FirstDay),即像

这样的公式

周 = 1 + (DateTime.DayOfYear - 1) / 7

EF Core 支持将 DayOfWeek 转换为 SQL,因此您可以使用这样的东西(不确定是否需要 Year):

.GroupBy(g => new { g.Trsdt.Year, Week = 1 + (g.Trsdt.DayOfYear - 1) / 7 })

【讨论】:

    【解决方案2】:

    使用 System.Globalization;

     .GroupBy( 
                  g => CultureInfo.CurrentCulture.Calendar.GetWeekOfYear( g.Trsdt, 
                  CalendarWeekRule.FirstDay,DayOfWeek.Monday )
               )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-29
      • 2019-02-11
      • 1970-01-01
      • 2020-12-01
      • 2018-12-27
      • 1970-01-01
      • 2019-04-29
      • 1970-01-01
      相关资源
      最近更新 更多