我有一个表: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,但是当我使用给定的查询时没有记录,我需要增加数量来获取记录!!!
答案 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