登录次数        时间
4                     ??
1                     ??
....                    .....时间格式我也不知道用什么格式好我搜到一个相似的sql
select `timestamp`-`timestamp`% (5*60) , avg(cup)
from `instance`
group by `timestamp`-`timestamp`% (5*60)  改成我的: select count(logintime-logintime%(5*60))  登录次数,logintime-logintime%(5*60) 时间 from logins where 
date_format(logins.logintime,'%Y-%m-%d')='2014-04-21' group by logintime-logintime%(5*60);但是这样执行出来 时间 是这样的:
登录次数      时间
4 20140420999800.000000
7 20140421000100.000000
5 20140421000400.000000
3 20140421000700.000000
5 20140421001000.000000
...7 20140421234700.000000
4 20140421235000.000000
7 20140421235300.000000
9 20140421235600.000000
10 20140421235900.000000
我对这个时间格式不太理解,因为行数有400多行,如果是按300秒分割一天的话怎么会有400多条

解决方案 »

  1.   


    5分钟一统计,一天就是288条统计结果,两天就是576

    logintime 从2014-04-21 00:00:06 到 2014-04-21 23:59:57 也就是是一天
    为啥 执行 :select count(logintime-logintime%(5*60))  登录次数,logintime-logintime%(5*60) 时间 from logins where 
    date_format(logins.logintime,'%Y-%m-%d')='2014-04-21' group by logintime-logintime%(5*60);
    会有427条记录:
    登录次数      时间
    4     20140420999800.000000
    7     20140421000100.000000
    5     20140421000400.000000
    3     20140421000700.000000
    5     20140421001000.000000
    ...7     20140421234700.000000
    4     20140421235000.000000
    7     20140421235300.000000
    9     20140421235600.000000
    10     20140421235900.000000从 第一条 20140420999800 到 最后一条20140421235900.000000 都是间隔300,不过这个300的单位应该不是秒吧
    对 logintime-logintime%(5*60)  不理解
      

  2.   

    你的 logintime 是什么类型啊? 如果是timestamp 可以直接 减 300, 如果 datetime,则不能这样。
      

  3.   

    logintime 是 datetime 类型 ,该怎么办,求教!
      

  4.   

    logintime 是 datetime 类型 ,该怎么办,求教!
    用UNIX_TIMESTAMP函数把datatime转换成秒数 然后再计算。