时间是整型?
如何进行年,季,月,周分组统计查询?

解决方案 »

  1.   

    是的,unixtime 是秒数自1900-01-01 00:00以来的秒数或毫秒数
      

  2.   



    select FROM_UNIXTIME(colUNIXtime,'%Y'),count(*) 
    from yourTable
    group by FROM_UNIXTIME(colUNIXtime,'%Y')
    季,select FROM_UNIXTIME(colUNIXtime,'%Y'),QUARTER(FROM_UNIXTIME(colUNIXtime)) ,count(*) 
    from yourTable
    group by FROM_UNIXTIME(colUNIXtime,'%Y'),QUARTER(FROM_UNIXTIME(colUNIXtime))
    月,
    select FROM_UNIXTIME(colUNIXtime,'%Y%m'),count(*) 
    from yourTable
    group by FROM_UNIXTIME(colUNIXtime,'%Y%m')周 -- 这个你需要明确定义周的概念是什么?哪一天是第一天? 
    select FROM_UNIXTIME(colUNIXtime,'%Y%V'),count(*) 
    from yourTable
    group by FROM_UNIXTIME(colUNIXtime,'%Y%V')
      

  3.   

    关键是你用from_unixtime转换成时间型,然后用对应时间函数处理就可以了,示例:mysql> select from_unixtime(1257047755);
    +---------------------------+
    | from_unixtime(1257047755) |
    +---------------------------+
    | 2009-11-01 11:55:55       |
    +---------------------------+
    1 row in set (0.00 sec)mysql> select year(from_unixtime(1257047755)),quarter(from_unixtime(1257047755))    -> ,month(from_unixtime(1257047755)),week(from_unixtime(1257047755))\G
    *************************** 1. row ***************************
       year(from_unixtime(1257047755)): 2009
    quarter(from_unixtime(1257047755)): 4
      month(from_unixtime(1257047755)): 11
       week(from_unixtime(1257047755)): 44
    1 row in set (0.00 sec)
      

  4.   

    mysql> select FROM_UNIXTIME(1257047327,'%Y'); -- 年
    +--------------------------------+
    | FROM_UNIXTIME(1257047327,'%Y') |
    +--------------------------------+
    | 2009                           |
    +--------------------------------+
    1 row in set (0.00 sec)mysql> select FROM_UNIXTIME(1257047327,'%Y'),QUARTER(FROM_UNIXTIME(1257047327));
     -- 季
    +--------------------------------+------------------------------------+
    | FROM_UNIXTIME(1257047327,'%Y') | QUARTER(FROM_UNIXTIME(1257047327)) |
    +--------------------------------+------------------------------------+
    | 2009                           |                                  4 |
    +--------------------------------+------------------------------------+
    1 row in set (0.00 sec)mysql> select FROM_UNIXTIME(1257047327,'%Y%m'); -- 月
    +----------------------------------+
    | FROM_UNIXTIME(1257047327,'%Y%m') |
    +----------------------------------+
    | 200911                           |
    +----------------------------------+
    1 row in set (0.00 sec)mysql> select FROM_UNIXTIME(1257047327,'%Y%V'); -- 周
    +----------------------------------+
    | FROM_UNIXTIME(1257047327,'%Y%V') |
    +----------------------------------+
    | 200944                           |
    +----------------------------------+
    1 row in set (0.00 sec)mysql>