当有统计表格的横坐标是按年份或月份统计的情况,我的处理办法是建立一个数据库辅助表util_calendar,从中拿取统计的时间段(要group by的日期字段):

首先,建表:

DROP TABLE IF EXISTS `util_calendar`;
CREATE TABLE `util_calendar` (`id` int(20) NOT NULL,`year` varchar(20) DEFAULT NULL,`month` varchar(20) DEFAULT NULL,`date` varchar(20) DEFAULT NULL,`century` varchar(20) DEFAULT NULL,`parent_id` varchar(20) DEFAULT NULL,`type` varchar(20) DEFAULT NULL,`format` varchar(20) DEFAULT NULL COMMENT '%Y-%m-%d字符串',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='日期表(辅助统计)';

然后向表里添加两条数据,20世纪和21世纪:

接下来写存储过程,目的是给表中添加年和月的数据:

BEGINDECLARE i int;DECLARE j int;WHILE start_year <= end_year do if start_year >= 1900 and start_year < 2000 THENINSERT INTO util_calendar(id,`year`,century,parent_id,type) values(start_year,start_year,'20','20','1');set i=1;                while i<=12 doif i<10 thenINSERT INTO util_calendar(id,`year`,`month`,century,parent_id,type)
values(concat(start_year,'0',i),start_year,CONCAT('0',i),'20',start_year,'2');ELSEINSERT INTO util_calendar(id,`year`,`month`,century,parent_id,type) values(concat(start_year,i),start_year,i,'20',start_year,'2');end if;set i=i+1;end WHILE;               ELSEIF start_year >= 2000 and start_year < 2100 THENINSERT INTO util_calendar(id,`year`,century,parent_id,type) values(start_year,start_year,'21','21','1');set j=1;while j<=12 doif j<10 THENINSERT INTO util_calendar(id,`year`,`month`,century,parent_id,type) values(concat(start_year,'0',j),start_year,CONCAT('0',j),'21',start_year,'2');ELSEINSERT INTO util_calendar(id,`year`,`month`,century,parent_id,type) values(concat(start_year,j),start_year,j,'21',start_year,'2');end if;set j=j+1;end WHILE;end if;set start_year=start_year+1;end WHILE;
end

调用存储过程,假设存储过程名为insert_calendar:

call insert_calendar(1970, 2099)

这样就生成了1970年到2099年之间的所有年、月的数据(下图中的format字段暂无数据)。

最后,如果你想每条数据都有一个日期格式字符串的话,可以:

update util_calendar set format = CONCAT(`year`,'-',`month`) where type = '2'

大功告成!

备注:若需要有精确到日期的数据,在存储过程中按照同样的思想再嵌套一层循环吧~~

统计辅助表格——年月日历表的生成相关推荐

  1. python操作统计excel表格,生成新excel表格

    0.前言 因产品的同学试着用python统计Excel表格,但百度的程序又一直有各种问题, 所以叫我帮用python实现一个统计Excel表格程序:我之前也没有写过python操作Excel表格的程序 ...

  2. 如何用python生成表格_用 Python 生成 HTML 表格

    在 邮件报表 之类的开发任务中,需要生成 HTML 表格. 使用 Python 生成 HTML 表格基本没啥难度, for 循环遍历一遍数据并输出标签即可. 如果需要实现合并单元格,或者按需调整表格样 ...

  3. 【PHP】PHP使用PHPExcel生成Excel表格文件(附带随机生成英文名函数)

    [PHP]PHP使用PHPExcel生成Excel表格文件(附带随机生成英文名函数) 前言 由于业务需要,我们需要从业务中汇总数据,并生成Excel文件. 思路是这样的 PHP要导出Excel表格文件 ...

  4. excel怎样修改表格时间和计算机一制,Excel表格中如何自动生成记录数据的日期和时间...

    前几天有人问我:Excel表格在录入信息时如何在日期单元格自动生成日期时间? 在录入表格的时候,我们经常需要录入时间,比要填写出入库时间,为了减少录入的工作量,可以把日期设置为自动生成. 例如我们在B ...

  5. 如何从Excel表格导入数据批量生成二维码

    目前二维码应用渐趋广泛,二维码具有储存量大.保密性高.追踪性高.抗损性强.备援性大.成本便宜等特性,这些特性特别适用于表单.安全保密.追踪.证照.存货盘点.资料备援等方面.那么我们怎么用条码打印软件从 ...

  6. 【csv文件转xml文件】Excel表格数据快速批量生成xml格式文件

    使用背景: 使用场景举例:数据集标签处理 有时候我们需要将固定格式的Excel表格文件(csv文件)转换为xml文件使用,例如我们在目标检测实验当中我们需要制作数据集Pascal VOC格式的标签文件 ...

  7. java获取当前年月日历_java万年历,获取该年月日历表

    这篇文章主要介绍了java获取对应年月分日历表有需要的朋友可以来参考下 这篇文章应用java技术输入年份和月份获取该年月日历表,下面通过一段代码给大家做展示: 输入年份和月份,打印出这个月的日历表 1 ...

  8. Excel表格中如何快速生成下拉菜单

    Excel表格中如何快速生成下拉菜单 目录 Excel表格中如何快速生成下拉菜单 1.例如下表先手动输入前几组的"等级"类别"优良中差" ​2.同时按住 alt ...

  9. 合并统计Excel表格

    合并统计Excel表格 前提概述:学校要求统计晨午检未打卡人员名单 文件类型:xlsx 思路:先将分散的excel表格合并为一个总表,这部分由Python完成:接着运用excel强大的数据处理能力,筛 ...

最新文章

  1. java子类对象和成员变量的隐写方法重写
  2. ICLR2020:40篇计算机视觉github开源论文合集
  3. 数据库范式的思考以及数据库的设计
  4. javascrpt --- 使用jquery添加dom元素和Angular ng-repeat生成select性能比较
  5. 常见问题_自动打螺丝机常见问题及解决办法
  6. python基础训练100题(带答案)
  7. whea_uncorrectable_error蓝屏代码
  8. 同步 IO 和异步 IO
  9. java根据word模板生成word文档_根据Word模板生成Word文件 (JAVA POI)
  10. 生活中的逻辑谬误06.德克萨斯神枪手
  11. windows xp 安装python3.4.4(xp最高支持到3.4.4,后续版本不支持)
  12. 计算机主机配件及图解,电脑主机有哪些配件组成
  13. 基于SSM的花店系统
  14. 计算机数据库管理技术论文的结论,计算机数据库论文范文.doc
  15. macOS开发入门教程 : Part 2
  16. studio 报错Error: Activity class
  17. 尚硅谷在线教育一:尚硅谷在线教育相关的基本搭建配置以及讲师管理模块
  18. 期初余额、期后事项审计与审计报告案例
  19. buc算法java实现,数据挖掘概念与技术(hanjiawei)阅读笔记--第五章(数据立方体技术)...
  20. AdminLTE2 框架的使用

热门文章

  1. 创建 jun.exe病毒专杀程序(BETA1.1)
  2. 教育漫谈 读书笔记 一
  3. 基于webgl、封装threejs的3d物联网可视化开发平台
  4. 免费获取WPS正版,无广告,自带VBA,党政专版还自带序列号,安装后就是无限功能版【永久授权】...
  5. (二十)即时通信的聊天气泡的实现I
  6. ODBC连接数据库以SQLserver为例
  7. [Java基础] -- Java7/8 内存结构的理解
  8. Nacos+Nginx集群配置
  9. 中国人血白蛋白行业发展分析与投资战略研究报告2022-2028年
  10. Multisim安装出现“No software will be installed or removed”的解决办法