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、最后效果图是是这样的:

月份倒序: 月份正序:

转载于:https://www.cnblogs.com/cyfblogs/p/10311083.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值