如何编写LINQ to SQL查询以获取今天的日期记录?

Sra*_*nti 13 c# linq-to-sql

我想使用LINQ to SQL获取今天输入的记录.我写了下面的代码,但它也返回了以前的日期记录.

DateTime todaysDate = DateTime.Now;
DateTime yesterdaysDate = DateTime.Now.AddDays(-1);

var result = (from a in cxt.visitor.OrderByDescending(n => n.singin)
              where (a.singin > yesterdaysDate && a.singin <= todaysDate)
              select new {a.visitorid, a.visitorname, a.visitingperson, a.phonenumber, a.reasonforvisit, a.signature, a.singin });
Run Code Online (Sandbox Code Playgroud)

你能告诉我如何使用LINQ to SQL获取今天输入的记录吗?

Hab*_*bib 38

插入DateTime.Now使用DateTime.Today如:

DateTime startDateTime = DateTime.Today; //Today at 00:00:00
DateTime endDateTime = DateTime.Today.AddDays(1).AddTicks(-1); //Today at 23:59:59

var result = (from a in cxt.visitor.OrderByDescending(n => n.singin)
            where (a.singin >= startDateTime && a.singin <= endDateTime)
            select new {a.visitorid, a.visitorname, a.visitingperson, a.phonenumber, a.reasonforvisit, a.signature, a.singin });
Run Code Online (Sandbox Code Playgroud)

或者您可以尝试以下更简单的版本,(我不确定这是否会转换为SQL)

var result = (from a in cxt.visitor.OrderByDescending(n => n.singin)
            where (a.singin.Date == DateTime.Today)
            select new {a.visitorid, a.visitorname, a.visitingperson, a.phonenumber, a.reasonforvisit, a.signature, a.singin });
Run Code Online (Sandbox Code Playgroud)

  • 是不是'DateTime.Today.AddDays(1).AddTicks(-1)`和`<= endDateTime`有点过于复杂?`DateTime.Today.AddDays(1)`和`<endDateTime`会实现同样的目标,不是吗? (3认同)
  • 我很确定第二个更简单的版本**不能**转换成SQL (3认同)