C# 如何根据日期查询记录

C# 如何根据日期查询记录,c#,linq,lambda,C#,Linq,Lambda,我有一个数据表,有5列,类型为int、string和DateTime。我编写了一个LINQ查询来按日期过滤记录。如何在今天和昨天之前获取记录 var Data = _dtAll.AsEnumerable() .Where(datas => datas.Field<DateTime>("Date") == DateTime.Now.Date) .Select(datas => new { ---}) 我没有记录。我的记录是2013年

我有一个数据表,有5列,类型为int、string和DateTime。我编写了一个LINQ查询来按日期过滤记录。如何在今天和昨天之前获取记录

var Data = _dtAll.AsEnumerable()
          .Where(datas => datas.Field<DateTime>("Date") == DateTime.Now.Date)
          .Select(datas => new { ---})
我没有记录。我的记录是2013年5月14日上午10:00。我不需要按时间查询,我只需要按日期查询。收到任何帮助。

您使用的==仅与发布时间14/05/2013 12:22匹配

使用:


注意:您也可以使用DateTime.Now.AddHours-5,而不是硬编码的2013-05-14

昨天和今天的日期是昨天午夜(包括)和明天午夜之间的日期,不包括:

var upperBound = DateTime.Today.AddDays(1);
var lowerBound = DateTime.Today.AddDays(-1);

var Data = _dtAll.AsEnumerable()
          .Where(datas => datas.Field<DateTime>("Date") < upperBound)
                       && datas.Field<DateTime>("Date") >= lowerBound)
          .Select(datas => new { ---})
你试过这个吗

var Data = from datas in _dtAll.AsEnumerable()
      let diff = (DateTime.Now.Date - datas.Field<DateTime>("Date").Date)
      where diff.Days >= 0 && diff.Days <= 1
      select new { ---}

谢谢,今天收到**:*var Data=\u dtAll.aseneumerable.wheredata=>datas.FieldDate>=DateTime.Now.AddDays-1&&datas.FieldDate new{-};**昨天:*var Data=\u dtAll.aseneumerable.wheredata=>datas.FieldDate>=DateTime.Now.AddDays-2&&datas.FieldDate new{-};
var upperBound = DateTime.Today.AddDays(1);
var lowerBound = DateTime.Today.AddDays(-1);

var Data = _dtAll.AsEnumerable()
          .Where(datas => datas.Field<DateTime>("Date") < upperBound)
                       && datas.Field<DateTime>("Date") >= lowerBound)
          .Select(datas => new { ---})
var Data = from datas in _dtAll.AsEnumerable()
      let diff = (DateTime.Now.Date - datas.Field<DateTime>("Date").Date)
      where diff.Days >= 0 && diff.Days <= 1
      select new { ---}