我在一列中有时间戳表(MySQL 5.5)。是否可以在单个查询中获取过去1天(最后86400秒)内的记录数和上周(最后604800秒)的记录数?
我知道如何使用2个查询来完成它,但是知道是否有一些简洁的解决方案会很好。
timestamp > DATE_SUB(NOW(), INTERVAL 1 DAY)
timestamp > DATE_SUB(NOW(), INTERVAL 1 WEEK)
答案 0 :(得分:0)
Quick and Dirty只是一个联盟。
Select '1 Days', Count(*) as NumberOf from sometable
Where `timestamp` > DATE_SUB(NOW(), INTERVAL 1 DAY)
union
Select '7 Days', Count(*) as from sometable
Where `timestamp` > DATE_SUB(NOW(), INTERVAL 1 WEEK)
如果你有很多范围,那么会很痛苦,而且可能很贵。 f因此,您可能希望查看DateDiff来计算一次间隔,然后对其进行计数。