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

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/15697815/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-10 17:38:12  来源:igfitidea点击:

How to write LINQ to SQL query for getting today date records?

c#linq-to-sql

提问by Sravanti

I want to get the today entered records using LINQ to SQL. I wrote the below code but it is returning previous date records also.

我想使用 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 });

Can you please tell me how to get the today entered records only using LINQ to SQL?

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

采纳答案by Habib

Insetad of DateTime.Nowuse DateTime.Todaylike:

插入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 });

or You can try the following simpler version, (I am not sure if that would translate into SQL)

或者您可以尝试以下更简单的版本,(我不确定这是否会转换为 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 });