zoukankan      html  css  js  c++  java
  • Mysql 按年度、季度、月度、周、日SQL统计查询

    最近遇到一个问题:开发时建表没有 建立day month year 字段 直接用的时间戳,但是统计时要用到 按天,月,年排序

    这个不用程序处理 直接用mysql可以处理:
    mysql没有提供unix时间戳的专门处理函数,所以,如果遇到时间分组,而你用的又是整型unix时间戳,则只有转化为mysql的其他日期类型!

       FROM_UNIXTIM()将unix时间戳转为datetime等日期型!

    一、年度查询
    查询 本年度的数据
    SELECT *
    FROM blog_article
    WHERE year( FROM_UNIXTIME( BlogCreateTime ) ) = year( curdate( ))


    二、查询季度数据
    查询数据附带季度数
    SELECT ArticleId, quarter( FROM_UNIXTIME( `BlogCreateTime` ) ) 
    FROM `blog_article`
    其他的同前面部分:查询 本季度的数据
    SELECT *
    FROM blog_article
    WHERE quarter( FROM_UNIXTIME( BlogCreateTime ) ) = quarter( curdate( ))



    三、查询月度数据
    本月统计(MySQL)
    select * from booking where month(booking_time) =

    month(curdate()) and year(booking_time) = year(curdate())

    本周统计(MySQL)

    select * from spf_booking where month(booking_time) =

    month(curdate()) and week(booking_time) = week(curdate())


    四、时间段

    N天内记录

    WHERE TO_DAYS(NOW()) - TO_DAYS(时间字段) <= N


    当天的记录


    where date(时间字段)=date(now())

    where to_days(时间字段) = to_days(now());

    查询一周:
    select * from table   where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(column_time);

    查询一个月:
    select * from table where DATE_SUB(CURDATE(), INTERVAL INTERVAL 1 MONTH) <= date(column_time);


    查询'06-03'到'07-08'这个时间段内所有过生日的会员:

       Select * From user Where

    DATE_FORMAT(birthday,'%m-%d') >= '06-03' and DATE_FORMAT(birthday,'%m-%d')

    <= '07-08';

    统计一季度数据,表时间字段为:savetime 
    group by concat(date_format(savetime, '%Y '),FLOOR((date_format(savetime, '%m ')+2)/3))

    select YEAR(savetime)*10+((MONTH(savetime)-1) DIV 3) +1,count(*)

    from yourTable

    group by YEAR(savetime)*10+((MONTH(savetime)-1) DIV 3) +1;

    五、分组查询
         
       1、年度分组

       2、月度分组

       3、先按年度分组,再按月度分组

       4、按年月分组
       SELECT count(ArticleId), date_format(FROM_UNIXTIME( `BlogCreateTime`),'%y%m') sdate  FROM `blog_article` group by sdate

       结果:
        count( ArticleId )     sdate
    17     0901
    11     0902
    5     0903
    6     0904
    2     0905
    1     0907
    12     0908
    6     0909
    11     0910
    3     0911

  • 相关阅读:
    [CDQ分治][Treap][树状数组]JZOJ 4419 Hole
    [数论]JZOJ 4421 aplusb
    [LCA]JZOJ 3717 火车
    [数位DP]JZOJ 3363 Number
    user模块User表
    数据库配置
    后台配置
    后台:Django项目创建
    虚拟环境的搭建
    luffy 那点事
  • 原文地址:https://www.cnblogs.com/sanwenyu/p/4554881.html
Copyright © 2011-2022 走看看