如何在Linq中仅使用时间格式进行分组

时间:2016-10-11 05:48:40

标签: c# entity-framework linq

我想知道如何仅使用关于日期时间类型的时间格式来使用组。

select CONVERT(VARCHAR(10), a.tempDay, 108) as returnDay, b.qty from table1     as a inner join table2 as b on (a.id = b.id)
where a.id = 100
group by CONVERT(VARCHAR(10), a.tempDay, 108), b.qty 

实际上,tempDay是DateTime类型。(yyyy-MM-dd HH:mm:ss)在这种情况下,我只想用" HH:mm:ss"格式与Linq。

1 个答案:

答案 0 :(得分:1)

var datesByTime = from d in dates
                  group d by d.TimeOfDay.ToString(@"hh\:mm\:ss") into g
                  select new { Time = g.Key, Dates = g.ToList() };

日期是DateTime的集合,日期时间有属性 TimeOfDay ,它返回该日期的 TimeSpan ,所有人必须做Group By TimeOfDay。 你还需要 .ToString(@" hh:mm:ss")来删除毫秒。