• [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

    --------------------------------------

    欢迎您,进入 我系程序猿 的cnBlog博客。

    你不能改变你的过去,但你可以让你的未来变得更美好。一旦时间浪费了,生命就浪费了。

    You cannot improve your past, but you can improve your future. Once time is wasted, life is wasted.

    --------------------------------------

    分享到QQ空间  

  • 相关阅读:
    解决:webpack打包js项目ie11浏览器下报promise 未定义
    vue+element form 动态改变rules校验数据
    git 常用操作记录
    康佳LED42R6610AU刷机
    linux驱动开发环境的建立
    linux驱动笔记-设备驱动入门
    我的第一个裸机程序
    ES6new Promise()使用方法
    vue3 区别于 vue2 的“与众不同”
    10个常用的JS工具库,80%的项目都在用
  • 原文地址:https://www.cnblogs.com/jqmtony/p/4020669.html
Copyright © 2020-2023  润新知