将数据库中的 DateTimeOffSet 与当前值进行比较
Comparing a DateTimeOffSet From DataBase to Current Value
我想做的很简单。如果创建的事件的 DateTimeOffSet
早于 24 小时,我希望将其从数据库中删除。我在将 System.Linq.IQueryable
转换为 System.DateTime
.
时遇到了很多麻烦
任何帮助将不胜感激。
这是事件索引
public ActionResult Index()
{
IQueryable<DateTimeOffset> b = db.Events.Select(x => x.EventTime);
DateTimeOffset currentDate = DateTimeOffset.Now;
if (currentDate > b)
{
db.Events.Remove(@event);
db.SaveChanges();
return View(db.Events.ToList());
}
return View(db.Events.ToList());
}
我的另一个问题是我如何构造它以便它需要 24 小时的差异才能从数据库中删除行。
数据 table 的 EventTime 为 DateTimeOffset
数据类型。
我也一直在尝试使用
DateTimeOffset.Compare(currentDate, b);
但是 Visual Studio 也不喜欢那句话。如果您知道如何将数据库中的时间与当前时间进行比较,请提供帮助。在这个网站上真的没有这样的问候。我在这个网站上花了一整天,还没有找到相关的东西。
谢谢
你可以这样做
foreach (var a in b)
{
if( (currentDate - a).Hours >= 24 )
{
...
}
}
查看示例:https://msdn.microsoft.com/en-us/library/bb352700(v=vs.110).aspx
currentDate - b
会 return 一个 TimeSpan
对象,您可以使用 Hours
属性 对其进行检查。
在此处查看所有 TimeSpan 成员:https://msdn.microsoft.com/en-us/library/system.timespan_members(v=vs.90).aspx
在查询中进行比较可能更容易:
public ActionResult Index()
{
DateTimeOffset currentDate = DateTimeOffset.Now.AddDays(-1);
IQueryable<Event> events = db.Events.Where(x => currentDate > x.EventTime);
foreach(var e in events){
{
db.Events.Remove(e);
}
db.SaveChanges()
return View(db.Events.ToList());
}
然后您可以遍历并删除每一个。我也会在循环外保存更改,这样我们就可以提交一次更改而不是多次。
我想做的很简单。如果创建的事件的 DateTimeOffSet
早于 24 小时,我希望将其从数据库中删除。我在将 System.Linq.IQueryable
转换为 System.DateTime
.
任何帮助将不胜感激。 这是事件索引
public ActionResult Index()
{
IQueryable<DateTimeOffset> b = db.Events.Select(x => x.EventTime);
DateTimeOffset currentDate = DateTimeOffset.Now;
if (currentDate > b)
{
db.Events.Remove(@event);
db.SaveChanges();
return View(db.Events.ToList());
}
return View(db.Events.ToList());
}
我的另一个问题是我如何构造它以便它需要 24 小时的差异才能从数据库中删除行。
数据 table 的 EventTime 为 DateTimeOffset
数据类型。
我也一直在尝试使用
DateTimeOffset.Compare(currentDate, b);
但是 Visual Studio 也不喜欢那句话。如果您知道如何将数据库中的时间与当前时间进行比较,请提供帮助。在这个网站上真的没有这样的问候。我在这个网站上花了一整天,还没有找到相关的东西。
谢谢
你可以这样做
foreach (var a in b)
{
if( (currentDate - a).Hours >= 24 )
{
...
}
}
查看示例:https://msdn.microsoft.com/en-us/library/bb352700(v=vs.110).aspx
currentDate - b
会 return 一个 TimeSpan
对象,您可以使用 Hours
属性 对其进行检查。
在此处查看所有 TimeSpan 成员:https://msdn.microsoft.com/en-us/library/system.timespan_members(v=vs.90).aspx
在查询中进行比较可能更容易:
public ActionResult Index()
{
DateTimeOffset currentDate = DateTimeOffset.Now.AddDays(-1);
IQueryable<Event> events = db.Events.Where(x => currentDate > x.EventTime);
foreach(var e in events){
{
db.Events.Remove(e);
}
db.SaveChanges()
return View(db.Events.ToList());
}
然后您可以遍历并删除每一个。我也会在循环外保存更改,这样我们就可以提交一次更改而不是多次。