我想从 SQL 中收集过去 30 天的数据。此代码显示所有时间的数据
$result = $dbh->query('SELECT country,COUNT(*) FROM data_able GROUP BY country');
这没有显示任何内容,而不是显示最近 30 天的数据。
$result = $dbh->query('SELECT country,COUNT(*) FROM data_able GROUP BY country WHERE dtime > DATE_SUB(CURDATE(), INTERVAL 30 DAY)');
所有 SQL 条目都是在过去 30 天内完成的。也试过
$result = $dbh->query('SELECT country,COUNT(*) FROM data_able WHERE dtime > DATE_SUB(CURDATE(), INTERVAL 30 DAY) GROUP BY country');
我在这里做错了什么?
试试这个:
SELECT country, COUNT(*)
FROM data_able
WHERE dtime > DATE_ADD(CURDATE(), INTERVAL -30 DAY)
GROUP BY country
第二个不起作用,因为您放置了GROUP BY
beforeWHERE
语句,这不是正确的 SQL 顺序。
至于为什么第三个代码不起作用,我不确定,但如果我不得不猜测,它与那DATE_SUB
句话有关。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句