zoukankan      html  css  js  c++  java
  • MYSQL 日月周季年分组

    首先准备几条测试数据

    DROP TABLE IF EXISTS `test`;
    CREATE TABLE `test` (
    `n_id` int(11) DEFAULT NULL,
    `d_createdate` datetime DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    -- ----------------------------
    -- Records of test
    -- ----------------------------
    INSERT INTO `test` VALUES ('1', '2020-05-12 14:00:36');
    INSERT INTO `test` VALUES ('2', '2020-04-12 14:00:47');
    INSERT INTO `test` VALUES ('3', '2019-11-12 14:00:51');

    1. 通过日分组,此时不需要函数处理,直接group by 日期字段即可  

      SELECT
           d_createdate,
           DATE_FORMAT(d_createdate, '%Y%m%d') days
      FROM
           test
      GROUP BY
           days;

    2. 通过周分组,使用DATE_FORMAT指定格式即可

      SELECT
           d_createdate,
           DATE_FORMAT(d_createdate, '%Y%u') weeks
      FROM
          test
      GROUP BY
           weeks;

    3. 通过月分组,同理使用DATE_FORMAT指定格式即可

      SELECT
           d_createdate,
           DATE_FORMAT(d_createdate, '%Y%m') months
      FROM
           test
      GROUP BY
           months;

    4. 通过季度分组,使用QUARTER

      SELECT
           d_createdate,
           QUARTER (d_createdate) qu
      FROM
           test
      GROUP BY
           qu;

    5. 通过年分组,使用YEAR函数

      SELECT
           d_createdate,
           YEAR (d_createdate) y
      FROM
           test
      GROUP BY
           y;

  • 相关阅读:
    CentOS 6.5 安装 VNC Server
    vs2008出错
    MySQL 尽量避免使用 TIMESTAMP
    excel中生成32位随机id
    库存扣减和锁
    精通 MySQL 索引
    Java代码性能优化
    RocketMQ 消息丢失场景分析及如何解决
    Java 8 的内存结构
    Spring Boot + MyBatis + MySQL 实现读写分离
  • 原文地址:https://www.cnblogs.com/kevinZhu/p/12875906.html
Copyright © 2011-2022 走看看