MySql date_add () улучшение запросов - PullRequest
0 голосов
/ 12 марта 2012

Я выполняю запрос, который получает текущую активность по состоянию на now () и сравнивает ее с активностью за последние 5 дней.

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;

Есть ли способ сделать это более эффективночем вышеописанный способ?

1 Ответ

1 голос
/ 12 марта 2012

Как написано, запрос вернет активность дня до текущего часа за текущий день и предыдущие 4 дня, плюс активность текущего часа только за пять дней назад - чтобы включить весь день в текущий часна пятый день измените предложение where на:

where timestamp>date(date_add(now(), INTERVAL -5 DAY)) and 
      hour(timestamp) <=hour(now())

Кроме этого, единственная проблема, о которой я могу подумать, - это проверить, есть ли индекс в столбце метки времени.В противном случае он выглядит в оптимальной форме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...