MySql date_add()查询改进
我正在运行一个查询,以获取当前()的今天活动,并将它与过去5天中的活动进行比较。MySql date_add()查询改进
select count(*) ,date(timestamp) date , now() now
from activitylog
where timestamp>date_add(now(), INTERVAL -5 DAY) and
hour(timestamp) <=hour(now())
group by date(timestamp)
order by date(timestamp) desc;
有没有比上述方式更有效的方法吗?
正如所写的,查询将返回当天的活动,直到当前日期和前4天的当前小时,再加上当前小时的活动仅在五天前 - 使其包括当前的整个一天第五日,小时,where子句更改为:
where timestamp>date(date_add(now(), INTERVAL -5 DAY)) and
hour(timestamp) <=hour(now())
从这个
除此之外,我能想到的唯一的问题是,以检查是否有在时间戳列的索引。否则,它似乎处于最佳状态。
我真的希望有一种方式只使用1,即在哪里时间戳(date_add(SOME_MAGIC_HERE)),并取消和小时(时间戳... – artfullyContrived 2012-03-12 16:09:05
@artfullyContrived:如果你想排除当前小时后的数据在过去的5天内 – 2012-03-12 16:15:35
谢谢。让我们继续打开一天,以防其他一些mysql大师提出一些神奇的东西。 – artfullyContrived 2012-03-13 09:39:11
你可以发表表格的结构吗? – 2012-03-12 15:11:26