php - mysql选择两个日期(每月)之间的最后插入记录

时间:2017-11-18 09:28:31

标签: mysql sql

我有一个表:box(id autoincrement,net_amount,created_at timestamp); 我需要在php mysql中创建一个查询,以便每个月选择最后插入的记录。这样就可以在每个月末获得net_amount。 我正在尝试这个简单的查询:

select * from box
 where box.created_at < 20055332516028

虽然我表中的max created_at是2017-10-14 10:42:30,但是当我使用给定的查询时没有记录,我需要增加数量来获取记录!!!

2 个答案:

答案 0 :(得分:0)

如果我理解你的问题,你会发现: -

SELECT b1.*
FROM box b1 LEFT JOIN box b2
ON (b1.name = b2.name AND b1.id < b2.id)
WHERE b1.created_at < PUT YOUR DATE  and b2.id IS NULL;

希望有所帮助

答案 1 :(得分:0)

20055332516028不是Unix时间戳。你需要获得上个月末的时间戳,如下所示:

$date = new DateTime();
$date->setDate($date->format('Y'),$date->format('m'),1);
$date->setTime(0,0,0);
$date->sub(new DateInterval('PT1S'));
$endOfMonth = $date->getTimestamp();

然后在查询中使用它:

select * from box where box.created_at < unix_timestamp(?) order by box.created_at desc limit 1