繁体   English   中英

linq查询不同的日期

[英]linq query distinct date

在下面的查询中如何删除日期时间列的de time部分以仅获取不同的日期?

using (var ctx = new DBConn())
{
  var q = ctx.Table.Select(r => r.datetimefield).Distinct();
}

您正在使用linq-to-sql或EF(我不知道您使用的是哪一个)的故障磕磕绊绊。 直接的解决方案是使用DateTime.Date属性,但是,这两个ORM都不支持,它不映射到SQL方法。

你有两个解决方案:

  1. 使用ToList急切评估查询:

     var q = ctx.Table.ToList().Select(r => r.datetimefield.Date).Distinct(); 
  2. 创建一个仅详细说明数据库中日期组件的字段。 这是我通常去的方式,因为您可以留在数据库中并在那里执行查询。

假设r.datetimefield是DateTime,您可以使用DateTime.Date删除时间组件:

var q = ctx.Table.Select(r => r.datetimefield.Date).Distinct();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM