C# 获取特定时间间隔之间的数据
假设一个事件发生在11点。我只想在事件开始前1小时到事件结束之间显示该事件。谢谢你的帮助C# 获取特定时间间隔之间的数据,c#,linq,entity-framework,C#,Linq,Entity Framework,假设一个事件发生在11点。我只想在事件开始前1小时到事件结束之间显示该事件。谢谢你的帮助 from x in _context.Events join a in _context.Addresses on x.EventAddressID equals a.ID let aboutToStart = x.EventStartTime.AddHours(-1) let currentTime = DateTime.Now where x.EventStartTime >= abou
from x in _context.Events
join a in _context.Addresses on x.EventAddressID equals a.ID
let aboutToStart = x.EventStartTime.AddHours(-1)
let currentTime = DateTime.Now
where x.EventStartTime >= aboutToStart && x.EventEndtime >= currentTime
无法使用
.AddHours(-1)
调用在服务器上创建新的DateTime
对象。相反,您应该使用方法计算服务器上的日期时间:
var currentTime = DateTime.Now;
var query = from x in _context.Events
join a in _context.Addresses on x.EventAddressID equals a.ID
let aboutToStart = EntityFunctions.AddHours(x.EventStartTime, -1)
where x.EventStartTime >= aboutToStart &&
x.EventEndtime >= currentTime;
那么你的问题是什么?你的查询有效吗?如果不是,它对一些示例输入做了什么,应该返回什么?它是否没有编译,或者是否出错,或者是什么?这是一个多么谨慎的查询?例如,你必须考虑夏时制吗?在添加/减去时间之前,您可能需要转换为UTC抱歉,我没有提供,但它没有返回正确的信息。我想我的where子句是off从未使用过这个,你能提供一个例子吗,我的子句会得到我需要的结果吗?@user516883当然,更新为example@user516883这解决了你的问题吗?