MySQL 如何生成月份表
MySQL 如何生成月份表
如果遇到按照月份统计信息的时候,常用的统计方式就是用month表去连接order表,下面就是生成月份表的过程
1、首先是建表
CREATE TABLE `sn_month` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`year` char(4) NOT NULL COMMENT '年份',
`month` tinyint(2) unsigned NOT NULL COMMENT '月份',
`date` char(10) NOT NULL COMMENT '年月',
`start_time` int(10) unsigned NOT NULL DEFAULT '' COMMENT '月份开始时间',
`end_time` int(10) unsigned NOT NULL DEFAULT '' COMMENT '月份结束时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2201 DEFAULT CHARSET=utf8 COMMENT='月份表';
2、利用代码,生成数据
$data = [];
$m = date('9');//当前月份
$y = date('2017');//当前年份
for($i = 0; $i < 24; $i++) {
$temp = [];
$temp['year'] = $y;
$temp['month'] = $m;
$temp['start_time'] = strtotime($y.'-'.$m.'-01');//开始时间
//计算结束时间
if ($m < 12) {
$temp['end_time'] = strtotime($y.'-'.($m + 1).'-01');
} else {
$temp['end_time'] = strtotime(($y+1).'-01-01');
}
$temp['date'] = $y.'-'.$m;
//这是倒序
if($m > 1) {
$m --;
}else{
$m = 12;
$y--;
}
//这是正序
if ($m > 11) {
$m = 1;
$y ++;
} else {
$m ++;
}
$data[] = $temp;
}
Db::name('month')->insertAll($data);
die;
3、最后效果图是是这样的:
月份倒序:
月份正序:
MySQL 如何生成月份表的更多相关文章
- 【工具篇】利用DBExportDoc V1.0 For MySQL自动生成数据库表结构文档
对于DBA或开发来说,如何规范化你的数据库表结构文档是灰常之重要的一件事情.但是当你的库,你的表排山倒海滴多的时候,你就会很头疼了. 推荐一款工具DBExportDoc V1.0 For MySQL( ...
- MySQL 如何生成日期表
MySQL 如何生成日期表 在开发过程中,经常会遇到统计问题,通常交易信息都不是连续的,此时,统计出来的数据都是不连续的,所以提前生成一个时期表,当没有交易数据的时候填充0,就可以了,下面是生成日期表 ...
- python查询mysql并生成excel表
需求说明 开发不愿意单独为某个项目做后台 并且运营那边需要合并多个表的数据 因此找上了我. 要求每周执行一次.月初也执行一次 要查询2个mysql数据库多个表并生成excel表 我的想法 找开发要sq ...
- mysql批量生成修改表和列注释语句
当我们在一个数据库修改完备注后,需要将其导致另一个服务器上的数据库中,需要生成批量执行语句,方便操作,注意用change 或modified 进行列的属性修改时,没有写全的话会造成其它属性的丢失,如 ...
- 利用DBExportDoc V1.0 For MySQL自动生成数据库表结构文档
对于DBA或开发来说,如何规范化你的数据库表结构文档是灰常之重要的一件事情.但是当你的库,你的表排山倒海滴多的时候,你就会很头疼了. 推荐一款工具DBExportDoc V1.0 For MySQL( ...
- hibernate+mysql 自动生成数据库问题
Hibernate Entity类 表名注解大写时,在windows下mysql自动生成的表都为小写(不区分大小写),在linux下mysql自动生成区分大小写.导致数据库问题. 原因(window下 ...
- PowerDesigner生成数据库表和逆向生成表结构(MySQL数据库)
一.Download Connector/ODBC下载ODBC驱动,地址:https://dev.mysql.com/downloads/connector/odbc/, 需要注意:PowerDesi ...
- MySQL MyISAM和Innodb表生成序列
目录 背景 分析 测试 结论 背景 应用端需要生成依次递增的序列来做流水序号等,方案有1.redis /MySQL SEQUENCE引擎生成序列:2.MySQL中myisam表 replace int ...
- JDBCUtils,根据当前MySQL数据库下面的表生成java实体类
自己简单写的JDBCUtils,可以根据当前数据库下面的表生成java实体类,代码萌新,请多多包涵. 初始化配置: //驱动程序名//不固定,根据驱动 static String driver = & ...
随机推荐
- ADO.NET的主要对象
ADO.NET主要分为五个对象: 1)Connection对象:用来连接程序与数据库.没有利用连接对象将数据库打开,是无法从数据库中取得数据的.Close和Dispose的区别,Close之后还可以用 ...
- 常用CSS样式设置
文字 我们以div标签举例,来设置常见的文字样式 <div>今天天气真晴朗!</div> div { /* 文字大小为14像素 */ font-size: 14px; /* 文 ...
- vue组件双向绑定.sync修饰符的一个坑
我们知道组件是单项的,但是有时候需要双向,这时候我们可以使用.sync修饰符,但今天遇到一个坑,一直不成功,花了半小时试出来的.... 在编程的时候我们很习惯冒号后面跟着空格.而.sync双向绑定需要 ...
- 关于css实现单行、多行省略标记
实现单行: overflow: hidden; text-overflow:ellipsis; white-space: nowrap; 实现多行: display: -webkit-box; -we ...
- 正则表达式 \w \d 的相关解读
在查阅很多相关正则的描述之后,发现对于\w 的释义都是指包含大 小写字母数字和下划线 相当于([0-9a-zA-Z]) (取材于经典教程 正则表达式30分钟入门教程) 但是在实际使用中发现并不是这么回 ...
- appium(二)简单的demo
转自http://blog.csdn.net/Yejianyun1/article/details/55517418 启动appium服务,连接手机,将测试用例demo存放到.py文件中 # ...
- JavaScript(一) 对象基础
1.定义类或对象 1.1 混合的构造函数/原型方法 用构造函数定义对象的所有非函数属性,类似于Java的构造方法.用原型方法定义对象的函数属性(方法).这种方法是使用比较广泛的定义类或对象的方法. / ...
- 运用Hadoop能否搭建完整的云计算平台?
Apache Hadoop 是一个用java语言实现的软件框架,在由大量计算机组成的集群中运行海量数据的分布式计算,它可以让应用程序支持上千个节点和PB级别的数据. Hadoop并不完全代表云计算,所 ...
- 寄生构造函数模式 js
有一点需要说明:首先返回的对象与构造函数或者构造函数的原型属性之间没有关系,也就是说构造函数返回的对象与在构造函数外部创建的对象没有什么不同,为此不能依赖 instanceof 操作符来确定对象类型. ...
- ORA-00392: log 4 of thread 2 is being cleared, operation not allowed
alter database open resetlogs或者 alter database open resetlogs upgrade报错:ORA-00392 在rman restore 还原数 ...