gpt4 book ai didi

c# - 日期时间如何工作以及如何在 Windows 窗体 ADO 实体中比较两个日期?

转载 作者:行者123 更新时间:2023-11-30 22:56:05 24 4
gpt4 key购买 nike

我的数据库 sql server 中有表“Deposit”,列为“DepositDate”,它的类型是日期时间。我有今天日期的行,其中之一是 2019-02-14 22:26:50.000今天的日期是一样的,我的意思是 2019-02-14但是当尝试通过以下代码获取所有今天的行时,它不起作用。我认为它与日期之后的那些时间有关。但是现在写我只在一天内感到烦恼,但我想在我的数据库中保留日期时间类型。因此,时间必须与我正在搜索的日期相匹配吗?我使用 Linq 和实体

我确实喜欢这样,我没有收到错误,但没有找到该行。返回空数据 GridView

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;
}

我什至都试过了,但我得到了错误

date is not supported in LINQ to ADO Entities

DateTime TodayDate = Convert.ToDateTime(DateTime.Now.Date);
where u.DepositDate.Value.Date == TodayDate

非常感谢你的帮助

最佳答案

如果您想使用在 DepositDate 上可能拥有的任何索引,则必须在开始日期和结束日期之间进行过滤.如果你不关心有Canonical Date Functions您可以使用从数据库值中去除时间。

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();

或者作为 lambda

var deposits = db.Deposit
.Where(u => u.DepositDate >= today && u.DepositDate < tomorrow)
.ToList();

作为旁注和意见,通常建议将 DbSet<T> 复数您的属性 DbContext (如 db.Deposits )。您的变量也是如此 deposit因为它将是 List<Deposit> 类型这是一个集合(我更改的第二个代码示例)。

关于c# - 日期时间如何工作以及如何在 Windows 窗体 ADO 实体中比较两个日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54699242/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com