如何仅在LINQ中比较日期值

时间:2016-10-13 21:01:23

标签: c# linq

我正在尝试从数据库中获取记录StartTime字段应该是今天的日期。

service.GetAll().Where(o => o.StartTime. == DateTime.Today.Date).Select(o => new SelectableItem(o.Id, o.TestPurpose, v == o.Id))

数据库中的日期是这种格式。

2016-07-01 07:00:00.000

如何将此格式与今天的日期进行比较,我只需要比较日期而不是时间。

2 个答案:

答案 0 :(得分:2)

您可以使用@Renan Araujo指定的方法。 或者另一种方法是,定义两个日期并使用

.Where(o => o.StartTime >= date1 && o.StartTime < date2)

,其中

  date1 = DateTime.Today.Date;            // (lets say today's date=10-13-2016 )
  date2 = DateTime.Today.AddDays(1).Date; // (tomorrow's date = 10-14-2016)

答案 1 :(得分:0)

使用EntityFunctions.TruncateTime删除时间部分:

service.GetAll()
.Where(o => EntityFunctions.TruncateTime(o.StartTime) == EntityFunctions.TruncateTime(DateTime.Today.Date))
.Select(o => new SelectableItem(o.Id, o.TestPurpose, v == o.Id))