C# datetime如何工作以及如何在windows窗体ADO实体中比较两个日期?
我的数据库sql server中有表“Deposit”,列为“DepositDate”,其类型为datetime。 我和今天的日期有一行,其中一行是2019-02-14 22:26:50000 今天的日期是一样的,我的意思是2019-02-14 但是,当尝试通过以下代码获取“所有今天”行时,它不起作用。我认为它与日期之后的时间有关。 但是现在写我只在一天内被重置,但我想在我的数据库中保留datetime类型。 那么,我要找的是哪怕是时间和日期?我使用Linq和实体 我这样做,我没有得到错误,但没有找到行。返回空datagridviewC# datetime如何工作以及如何在windows窗体ADO实体中比较两个日期?,c#,winforms,entity-framework,linq,datetime,C#,Winforms,Entity Framework,Linq,Datetime,我的数据库sql server中有表“Deposit”,列为“DepositDate”,其类型为datetime。 我和今天的日期有一行,其中一行是2019-02-14 22:26:50000 今天的日期是一样的,我的意思是2019-02-14 但是,当尝试通过以下代码获取“所有今天”行时,它不起作用。我认为它与日期之后的时间有关。 但是现在写我只在一天内被重置,但我想在我的数据库中保留datetime类型。 那么,我要找的是哪怕是时间和日期?我使用Linq和实体 我这样做,我没有得到错误,但没
DateTime TodayDate = Convert.ToDateTime(DateTime.Now.ToString());
var deposit = (from u in db.Deposit
where u.DepositDate == TodayDate
select u).ToList();
if (deposit != null)
{
dgvDeposit.DataSource = null;
dgvDeposit.DataSource = deposit;
}
我甚至试过了,但是我犯了错误
LINQ to ADO实体中不支持日期
我非常感谢您的帮助如果您想利用您在
DepositDate
上可能有的索引,您必须在开始日期和结束日期之间进行筛选。如果你不在乎有多少时间,你可以用它从数据库值中去掉时间
DateTime today = DateTime.Today;
DateTime tomorrow = today.AddDays(1);
var deposit = (from u in db.Deposit
where u.DepositDate >= today && u.DepositDate < tomorrow
select u).ToList();
DateTime today=DateTime.today;
DateTime明天=今天。AddDays(1);
var存款=(从u到db存款)
其中u.DepositDate>=今天和u.DepositDate<明天
选择u.ToList();
或者作为一个羔羊
var deposits = db.Deposit
.Where(u => u.DepositDate >= today && u.DepositDate < tomorrow)
.ToList();
var存款=db.存款
其中(u=>u.DepositDate>=今天和u.DepositDate<明天)
.ToList();
作为旁注和意见事项,通常建议将
DbContext
上的DbSet
属性多元化(如db.depositions
)。您的变量deposit
也是如此,因为它的类型为List
,这是一个集合(我更改的第二个代码示例)。使用DateTime.Today
获取今天的日期现在
包括当前时间(今天
是12:00am)@Igor谢谢,它正在工作。现在我学到了一些东西。我想知道如何表述它。
var deposits = db.Deposit
.Where(u => u.DepositDate >= today && u.DepositDate < tomorrow)
.ToList();