从MySQL获取最新记录(7天)

时间:2013-08-20 01:04:22

标签: php mysql sql mysqli intervals

我想从我的桌子上抓住最新的记录。我想要过去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。

2 个答案:

答案 0 :(得分:0)

假设登录尝试的日期是b.ts,格式为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)";

答案 1 :(得分:0)

你可以使用mysql date_diff()来表示日期 http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_datediff

但是由于你使用时间戳,间隔是一个很好的解决方案:

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