zoukankan      html  css  js  c++  java
  • MySQL 如何生成月份表

    MySQL 如何生成月份表

    如果遇到按照月份统计信息的时候,常用的统计方式就是用month表去连接order表,下面就是生成月份表的过程

    1、首先是建表

    1 CREATE TABLE `sn_month` (
    2   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    3   `year` char(4) NOT NULL COMMENT '年份',
    4   `month` tinyint(2) unsigned NOT NULL COMMENT '月份',
    5   `date` char(10) NOT NULL COMMENT '年',
    6   `start_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '月份开始时间',
    7   `end_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '月份结束时间',
    8   PRIMARY KEY (`id`)
    9 ) ENGINE=InnoDB AUTO_INCREMENT=2201 DEFAULT CHARSET=utf8 COMMENT='月份表';

    2、利用代码,生成数据

     1  $data = [];
     2  $m = date('9');//当前月份
     3  $y = date('2017');//当前年份
     4  for($i = 0; $i < 24; $i++) {
     5      $temp = [];
     6      $temp['year'] = $y;
     7      $temp['month'] = $m;
     8      $temp['start_time'] = strtotime($y.'-'.$m.'-01');//开始时间
     9      //计算结束时间
    10      if ($m < 12) {
    11          $temp['end_time'] = strtotime($y.'-'.($m + 1).'-01');
    12      } else {
    13          $temp['end_time'] = strtotime(($y+1).'-01-01');
    14      }
    15      $temp['date'] = $y.'-'.$m;
    16      //这是倒序
    17      if($m > 1) {
    18          $m --;
    19      }else{
    20          $m = 12;
    21          $y--;
    22      }
    23      //这是正序
    24      if ($m > 11) {
    25           $m = 1;
    26           $y ++;
    27      } else {
    28          $m ++;
    29      }
    30      $data[] = $temp;
    31  }
    32  Db::name('month')->insertAll($data);
    33  die;

    3、最后效果图是是这样的:

    月份倒序: 月份正序:

  • 相关阅读:
    微服务Kong(三)——添加一个API
    微服务Kong(二)——快速入门
    Oracle 12c 创建用户
    汉字转拼音工具
    GITHUB一个新的项目发布
    Log4J 配置文件模板及代码说明
    Log4J2 配置文件模板及代码说明
    java 写入数据到Excel文件中_Demo
    关于数据库NULL值的几个问题思考
    详解Spring中的Profile
  • 原文地址:https://www.cnblogs.com/cyfblogs/p/10311083.html
Copyright © 2011-2022 走看看