我有一个 logins
记录所有登录和注销事件的表。我想查看特定用户在 24 小时内的所有登录事件。怎么做?像这样:
var records = from record in db.Logins
where record.Users.UserId == userId
&& record.Timestamp <= (DateTime.Now + 24)
select record;
record.Timestamp <= (DateTime.Now + 24)
这里是错误的。我正在使用 C# 3 + L2E。
最佳答案
显然问题出在DateTime.Now + 24
。这是不可能的,因为 DateTime
类型没有为 int
指定 + 运算符。
您的意思是:DateTime.Now.AddHours(24)
?或者更具体地说,-24
(除非您的表包含将来会添加的记录)。
record.Timestamp >= DateTime.Now.AddHours(-24)
为了提高性能,您可以将日期存储在变量中。
DateTime since = DateTime.Now.AddHours(-24);
var records = from record in db.Logins
where record.Users.UserId == userId
&& record.Timestamp >= since
select record;
如果您的时间戳恰好以滴答为单位,只需使用 since.Ticks
即可。
关于c# - Linq,如何指定时间戳条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2811813/