C# 实体框架,按日期时间按天/周/月分组
正如标题所说,我的表中有一个datetime列 在三种不同的情况下,我需要以三种方式对我的记录进行分组:C# 实体框架,按日期时间按天/周/月分组,c#,sql,sql-server,entity-framework,datetime,C#,Sql,Sql Server,Entity Framework,Datetime,正如标题所说,我的表中有一个datetime列 在三种不同的情况下,我需要以三种方式对我的记录进行分组: 按天分组 每周分组 按月分组 如果可能,我如何在实体框架中使用lambda表达式执行这3种不同的group by语句 更新:链接的问题重复,不是真正的重复。我要的是lambda解决方案,但链接中没有它您可以使用此方法: var ByDayGrouped = new TestEntities().Objects.GroupBy(O => new { O.date.Year, O.date
更新:链接的问题重复,不是真正的重复。我要的是lambda解决方案,但链接中没有它您可以使用此方法:
var ByDayGrouped = new TestEntities().Objects.GroupBy(O => new { O.date.Year, O.date.Month, O.date.Day }).ToList();
var ByMonthGrouped = new TestEntities().Objects.GroupBy(O => new { O.date.Year, O.date.Month }).ToList();
var ByWeekGrouped = new TestEntities().Objects.GroupBy(O => (O.date.DayOfYear % 7) + M ).ToList();
用这个
List<MyEntitiy> list = (from e in Context.MyEntities group e by e.Date.Day into g select g).ToList();
和使用
List<MyEntitiy> list = (from e in Context.MyEntities group e by e.Date.GetWeekOfYear() into g select g).ToList();
List List=(从Context.myenties组e中的e到e.Date.GetWeekOfYear()到g选择g.ToList();
可以使用linq和lambda表达式使用以下格式
按天分组
var results = from p in db.table
group p.data by p.DateTime.UtcNow.Day into g
select new { Id = g.Key, parameters = g };
按周分组
var result = from p in db.table
group p.data by p.DateTime.UtcNow.DayOfWeek into g
select new { Id = g.Key, parameters = g}
否则
//get the 7days of the week by the below method and perform between operation
DateTime fromDate = DateTime.Today.Subtract(new TimeSpan(7, 0, 0, 0));
DateTime today = DateTime.Today;
var result = from p in db.table
group p.data by (DbFunctions.TruncateTime(today) && DbFunctions.TruncateTime(today) >= DbFunctions.TruncateTime(fromDate)) into g
select new { Id = g.Key, parameters = g}
这个月也是如此
DateTime fromDate = DateTime.Today.Subtract(new TimeSpan(30, 0, 0, 0));
DateTime today = DateTime.Today;
var result = from p in db.table
group p.data by (DbFunctions.TruncateTime(today) && DbFunctions.TruncateTime(today) >= DbFunctions.TruncateTime(fromDate)) into g
select new { Id = g.Key, parameters = g}
是否需要“.Objects”的可能副本?它是什么?“对象”是我的数据库集的名称。它可以是基于您的项目的任何内容
ByweekGroup
查询中的M
变量是什么?这是一个数字,取决于您希望将一周中的哪一天作为一周的第一天?它有什么用?是否在“参数”中插入“表格”的所有字段?
DateTime fromDate = DateTime.Today.Subtract(new TimeSpan(30, 0, 0, 0));
DateTime today = DateTime.Today;
var result = from p in db.table
group p.data by (DbFunctions.TruncateTime(today) && DbFunctions.TruncateTime(today) >= DbFunctions.TruncateTime(fromDate)) into g
select new { Id = g.Key, parameters = g}