![](/img/trans.png)
[英]How to group a table by date and company id in C# and Entity Framework
[英]Query group by and convert date in C# Entity Framework?
// GET api/PdoGreige/ReportByBuffer
[HttpGet, ActionName("Buffer")]
public async Task<HttpResponseMessage>Get_Buffer()
{
var result = (from t1 in db.INVN_PROD_MOVEMENT_LOG
join t2 in db.INVN_PROD_PDO_ITEM on t1.PDO_ITEM_ID equals t2.PDO_ITEM_ID
join t4 in db.INVN_PROD_PDO_GREIGE on t2.PDO_ITEM_ID equals t4.PDO_ITEM_ID
join t3 in db.INVN_PROD_RM_GREIGE on t4.GREIGE_ID equals t3.GREIGE_ID
//where t3.GREIGE_ID != null
//where t3.WEIGHT_REMAIN != null
//where t3.ITEM_NAME != null
where t1.WORKCENTER == "O.DRY"
orderby t1.UPDATE_TIME descending
select new
{
UPDATE_TIME = t1 == null ? DateTime.Now : t1.UPDATE_TIME,
t3.GREIGE_ID,
t3.ITEM_NAME,
t3.WEIGHT_REMAIN,
t3.COMMENTS,
t1.WORKCENTER,
}).Distinct();
return Request.CreateResponse(
HttpStatusCode.OK,
await result.ToListAsync(),
Configuration.Formatters.JsonFormatter
);
}
这是我的 C# 查询。 如果我想将格式日期转换为 C# 中的 ("dd/MM/yyy") 并将其分组。 就像我在 SQL Server 中的查询一样,我尝试了很多语法但没有用。 帮我解决
我认为日期格式 105(不是 dd/MM/yyyy,而是 dd-MM-yyyy)并没有那么重要,而是它剥离了任何时间方面,因此分组是全天级别
在 c# 中,等效项是
UPDATE_TIME = t1 == null ? DateTime.Today : t1.UPDATE_TIME.Date
它通过将时间设置为午夜来“删除”时间方面(阻止它细分分组),但更有用的是将日期保留为日期而不是将其放入字符串; 它可以被格式化为更接近用户界面的用户文化中的字符串
如果你真的想要它作为一个字符串:
UPDATE_TIME = (t1 == null ? DateTime.Now : t1.UPDATE_TIME).ToString("dd/MM/yyyy")
(或如 105,使用连字符代替斜线)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.