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