[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: подсчет активных юзеров
MatrixGod
всем привет!

в таблице есть столбик "LastLogin", время в нем хранится в таком формате: "2012-06-27 15:41:43".
помогите плиз написать запрос который возвращает количество активных юзеров.
те кто заходил в течении скажем последних 30 дней.

таблица огромная, нужен максимально эффективный запрос.
с таблицы могу только читать. писать/менять не могу.

всем заранее спасибо!



Спустя 1 час, 30 минут, 47 секунд (28.06.2012 - 22:29) Zzepish написал(а):
а нет проще сделать с помощью функции date()

Спустя 57 минут, 1 секунда (28.06.2012 - 23:26) Ser18 написал(а):
Получаете текущее время в секундах, отнимаете от него 30 дней
В муСкул вроде есть функция которая переводит секунды в дату
В запросе переводите сек в дату и пишете в запросе, выбрать все что больше этой даты

Спустя 2 минуты, 6 секунд (28.06.2012 - 23:28) Ser18 написал(а):
Ниже представлен пример, в котором используются функции даты. Приведенный запрос выбирает все записи с величиной date_col в течение последних 30 дней:

mysql> SELECT something FROM tbl_name WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;

Спустя 9 часов, 56 минут, 57 секунд (29.06.2012 - 09:25) vagrand написал(а):
Цитата
SELECT something FROM tbl_name WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;


Плохой пример, индексы юзатся не будут.
Лучше сделать так:


$date = date('Y-m-d H:i:s', (time() - 30 * 24 * 60 * 60));

mysql_query('SELECT something FROM tbl_name WHERE date_col >= "' . $date . '"');
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.