我有一个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。
答案 0 :(得分:6)
显然问题源于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
。
答案 1 :(得分:0)
您正试图在将来和24小时之间搜索所有登录信息......
尝试:
var records = from record in db.Logins
where record.Users.UserId == userId
&& record.Timestamp >= (DateTime.Now.AddHours(-24))
select record;