实体框架将DATETIME拆分为仅按TIME排序

时间:2019-07-10 09:45:25

标签: entity-framework-core

我正在对包含DATETIME列的表运行查询,我只想按TIME对结果进行排序,而忽略日期。我整理了以下查询;

SELECT DISTINCT s.Id, s.SubmittedDate, s.CheckId, s.RestaurantId, s.StaffName, s.CustomerEmail, s.TableNumber 
FROM Survey s
ORDER BY  DATEPART (hh,s.submittedDate) ASC, DATEPART(mi,s.submittedDate) ASC

此查询的问题在于它生成错误ORDER BY items must appear in the select list if SELECT DISTINCT is specified。但是,我无法将按字段排序方式添加到查询的字段列表中,因为实体框架将结果映射到的调查实体上不存在该排序方式。

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

来自Java背景,我假设如果结果返回的实体不存在,则Entity Framework会抱怨。我试过了,Entity Framework并没有抱怨,它按预期工作。

我最后的工作查询是;

SELECT DISTINCT s.Id, s.SubmittedDate, s.CheckId, s.RestaurantId, s.StaffName, s.CustomerEmail, s.TableNumber, DATEPART(hh, s.submittedDate) as hrs, DATEPART(mi, s.submittedDate) as mins 
FROM Survey s
ORDER BY hrs, mins ASC