タイトルには、テーブルにdatetime列があります。エンティティのフレームワーク、日/週/日単位でのグループ化
は、私は、3つの異なる例では、3通りの方法で私の記録によってグループに必要があります。
- グループ
月
UPDATE:リンクされた質問は重複していますが、実際の重複はありません。私は、ラムダソリューションを求めている、それはあなたがこの方法を使用することができ、リンクに
タイトルには、テーブルにdatetime列があります。エンティティのフレームワーク、日/週/日単位でのグループ化
は、私は、3つの異なる例では、3通りの方法で私の記録によってグループに必要があります。
月
UPDATE:リンクされた質問は重複していますが、実際の重複はありません。私は、ラムダソリューションを求めている、それはあなたがこの方法を使用することができ、リンクに
存在しません:月のこの
List<MyEntitiy> list = (from e in Context.MyEntities group e by e.Date.Day into g select g).ToList();
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();
".Objects"は必要ですか?それは何ですか? –
"Objects"は私のDbSetの名前です。あなたのプロジェクトに基づいたものであればどんなものでもかまいません – Kahbazi
ByWeekGroupedクエリの 'M'変数は何ですか? –
使用してでe.Date.Day
を置き換えますe.Date.Month
の場合は、最初にWeekOfYear
public int GetWeekOfYear(this DateTime d)
{
GregorianCalendar c = new GregorianCalendar();
return c.GetWeekOfYear(d,CalenderWeekRule.FirstDay,DayOfWeek.Sunday);
}
を計算し、
List<MyEntitiy> list = (from e in Context.MyEntities group e by e.Date.GetWeekOfYear() into g select g).ToList();
あなたは、LINQを使用して、次の形式を使用することができます使用して、ラムダは、グループ化ウィーク
一日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}
なぜ "parameters = g.ToList()"ですか?その用途は何ですか?それは "テーブル"のすべてのフィールドを "パラメータ"に挿入しますか? –
のためのあなたは何を試してみましたか? –
可能な複製http://stackoverflow.com/questions/762899/linq-group-by-month-and-year-within-a-datetime-field – Sherlock