рассчитывая извлечь ежедневный счет различных входов в систему для приложения между 6 утра и 8 вечера - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть таблица, в которой хранятся данные для входа пользователя, включая login_time (в мм / дд / гггг чч: мм: сс), вместе с их user_id. Я хочу иметь возможность перечислять ежедневное количество уникальных пользовательских логинов для каждой недели / месяца и т. Д. c ежедневно с 6:00 до 20:00. Я просто не уверен, как быть в состоянии сортировать только по времени, а не по полной дате. Запрос Basi c для получения текущего дня после 6 часов утра

1002 *

, который возвращает уникальное количество логинов пользователей за день. Я хочу иметь возможность работать в течение всех дней с 6 утра до 8 вечера. так что я могу создать отчет с деталями. Любые мысли о том, как лучше всего это сделать?

спасибо, дайте мне знать

1 Ответ

0 голосов
/ 16 апреля 2020

MySQL распознает тип данных TIME, поэтому вы можете просто сделать:

where time(login_time) >= '06:00:00' and time(login_time) < '20:00:00'

Чтобы получить ежедневное количество различных входов в систему за этот период, вы должны go:

select date(login_time) login_day, count(distinct user_id)
from user_logins
where time(login_time) >= '06:00:00' and time(login_time) < '20:00:00'
group by login_date

При необходимости вы можете обработать временной сдвиг следующим образом:

select date(login_time - interval 7 hour) login_day, count(distinct user_id)
from user_logins
where 
    time(login_time - interval 7 hour) >= '06:00:00' 
    and time(login_time - interval 7 hour) < '20:00:00'
group by login_date
...