0

我正在尝试从我的表中获取最新记录。我想要过去 7 天内发生的所有记录。这是我到目前为止要开始的内容。

$query = "SELECT * FROM mlg_logattempts AS a WHERE a.ts = (SELECT MAX(ts) FROM mlg_logattempts AS b WHERE b.ts > NOW() - INTERVAL 5 MINUTE AND b.name = a.name)";

我过去曾使用过间隔,但现在不确定如何进行这项工作。有人可以告诉我请求过去 7 天记录的正确方法吗?我确实有一个时间戳字段。

更新

不幸的是,我意识到了我与您分享的命令。我没有上述任何字段。我唯一的日期字段是“日期”。没有 a 或 ts。

4

2 回答 2

0

Supposing that the date of login attempt is b.ts and it's formatted like 2013-08-20 03:08:

$past7days = date("Y-m-d H:i:s",strtotime("-7day")); 
$query = "SELECT * FROM mlg_logattempts AS a WHERE a.ts = (SELECT MAX(ts) FROM mlg_logattempts AS b WHERE date >= '$past7days' AND b.name = a.name)";
于 2013-08-20T01:09:05.173 回答
0

You could use mysql date_diff() for dates http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_datediff

but since you use timestamps, the interval is a good solution:

b.ts > unix_timestamp(CURDATE()-INTERVAL 7 DAY)

于 2013-08-20T01:10:46.713 回答