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、最后效果圖是是這樣的:

月份倒序: 月份正序:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM