希望提取每天早上6点到晚上8点之间应用程序的不同登录次数



我有一个表,存储用户登录信息,包括login_time(以mm/dd/yyyy hh:mm:ss为单位(及其user_id。我希望能够列出每周/每月等每天早上6点到晚上8点的唯一用户登录次数。我只是不知道如何只按时间排序,而不是按完整日期排序。早上6点后获取的当天基本查询

SELECT COUNT(DISTINCT user_id) 
FROM users_logins
WHERE users_logins.login_time >= '2020-04-16 13:00:00'

其返回当天用户登录的唯一#。我希望能在早上6点到晚上8点之间跑一整天。这样我就可以生成包含详细信息的报告。你对如何最好地做到这一点有什么想法吗?

谢谢让我知道

MySQL可以识别数据类型TIME,因此您只需执行以下操作:

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

要获得该时间段内不同登录的每日计数,您可以访问:

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

最新更新