linq中datetime取日期格式部分
阿新 • • 發佈:2019-01-28
linq中想對資料記錄按日期進行分組,即得到每天的資料彙總,用C#的d.ToShortDateString()會報錯。(其中,d為DateTime型別的變數)。
原因是EF不識別C#的語法。此時,需要用EF自帶的日期轉換函式DbFunctions.TruncateTime(),引用using System.Data.Entity;
例子:var q=from p in table1
group p by new {OperateDate=DbFunctions.TruncateTime(p.OperateDate)} into g
select new
{
OperateDate=g.Key.OperateDate,
Money=g.Sum(m=>m.Money)
};
說明:DbFunctions.TruncateTime()是把日期轉換成短日期型的值,轉換結果仍然是DateTime型的變數,即2016/12/2 12:23:56轉換成2016/12/2 00:00:00。這樣分組的時候就能打這一天的資料分到一起了