gpt4 book ai didi

c# - Linq 如果 DateTime 字段早于 X 小时

转载 作者:太空狗 更新时间:2023-10-30 00:01:49 25 4
gpt4 key购买 nike

我已经尝试了以下(显然没有//),但我无法正常工作,有人可以帮忙吗?

    public void CleanBasket()
{
//double validHours = 3;
// var expired = (from a in db.Baskets where (DateTime.Now - a.DateCreated).TotalHours > validHours select a);
//var expired = (from a in db.Baskets where (DateTime.Now.Subtract(a.DateCreated).Hours > 3) select a);
//var expired = (from a in db.Baskets where(a => a.DateCreated > DateTime.Now.AddHours(-1));
//foreach (Basket basket in expired) db.DeleteObject(expired);
db.SaveChanges();
}

最佳答案

在这种情况下,您当然可以在调用 LINQ 之前简单地进行日期时间计算:

double validHours = 3;
var latest = DateTime.UtcNow.AddHours(-validHours);
var expired = (from a in db.Baskets where a.DateCreated < latest select a);

对于您需要在数据库中执行但无法通过这种方式执行的任何更复杂的 DateTime 操作,您可以使用 SqlFunctions .

顺便说一句,您应该以 Utc 而非本地时间存储您的时间。在夏令时更改期间,使用 DateTime.Now 的计算将出错。

关于c# - Linq 如果 DateTime 字段早于 X 小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10289829/

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