MySQL 生成日期表

1、创建一个num表,用来存储数字0~9

CREATE TABLE num (i int);

2、在num表中生成0~9

INSERT INTO num (i) VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9);

3、生成一个存储日期的表,datalist是字段名

CREATE TABLE  if not exists calendar(datelist date);

4、生成并插入日期数据

INSERT INTO calendar(datelist) SELECT
      adddate(
          (   -- 这里的起始日期,你可以换成当前日期
              DATE_FORMAT("2016-1-1", ‘%Y-%m-%d‘)
          ),
          numlist.id
     ) AS `date`
FROM
(
  SELECT
        n1.i + n10.i * 10 + n100.i * 100 + n1000.i * 1000+ n10000.i * 10000 AS id
        FROM
        num n1
        CROSS JOIN num AS n10
        CROSS JOIN num AS n100
        CROSS JOIN num AS n1000
        CROSS JOIN num AS n10000
     ) AS numlist;

5、最后再添加主键即可

ALTER TABLE `calendar`
ADD COLUMN `id`  int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT ‘主键‘ FIRST ,
ADD PRIMARY KEY (`id`);

作者:Time大王
链接:https://www.jianshu.com/p/f270f9d15f82
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

=============================================================

执行sql生成从1900-01-01起的十万条数据

CREATE TABLE num (i int);-- 创建一个表用来储存0-9的数字
INSERT INTO num (i) VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9);-- 生成0-9的数字,方便以后计算时间
CREATE TABLE if not exists calendar(datelist date); -- 生成一个存储日期的表,datalist是字段名
-- 这里是生成并插入日期数据
INSERT INTO calendar(datelist) SELECT
adddate(
( -- 这里的起始日期,你可以换成当前日期
DATE_FORMAT("1900-1-1", ‘%Y-%m-%d‘)
),
numlist.id
) AS `date`
FROM
(
SELECT
n1.i + n10.i * 10 + n100.i * 100 + n1000.i * 1000+ n10000.i * 10000 AS id
FROM
num n1
CROSS JOIN num AS n10
CROSS JOIN num AS n100
CROSS JOIN num AS n1000
CROSS JOIN num AS n10000
) AS numlist;
 生成calendar表后,删除num的临时表。
————————————————
版权声明:本文为CSDN博主「Jonah_lxw」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xiuwu0423/article/details/86672560

原文地址:https://www.cnblogs.com/apolloren/p/12247294.html

时间: 2024-11-09 00:49:51

MySQL 生成日期表的相关文章

MySQL 如何生成日期表

在开发过程中,经常会遇到统计问题,通常交易信息都不是连续的,此时,统计出来的数据都是不连续的,所以提前生成一个时期表,当没有交易数据的时候填充0,就可以了,下面是生成日期表的步骤 1.创建一个num表,用来存储数字0~9 1 CREATE TABLE num (i int); 结果如下: 2.在num表中生成0~9 1 -- CREATE TABLE num (i int); 2 INSERT INTO num (i) VALUES (0), (1), (2), (3), (4), (5), (

mysql生成日期的辅助表

为了解决mysql按日期分组查询统计的时候,没有数据补0.可以生成连续的时间表格来辅助查询 CREATE TABLE num (i int);-- 创建一个表用来储存0-9的数字INSERT INTO num (i) VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9);-- 生成0-9的数字,方便以后计算时间 * 生成日期 CREATE TABLE num (i int);-- 创建一个表用来储存0-9的数字 INSERT INTO n

PowerBI 应用时间智能(生成日期表)

简介 Power BI Desktop -是一款由微软发布的自助式商业智能工具,功能强大.易于使用.其中还可以通过微软云连多个数据源并且使用数据源来创建可视化表盘. 但是几乎所有的BI都需要展示如何随时间改变KPI.因此我将会介绍一个帮助我们使用事件元素来分析数据的关键功能.在PowerBI Desktop 中叫做“time intelligence”.应用这种时域分析法能是商业智能中基本的数据表现形式.毕竟公司想要知道的无非就是今年的业绩相比去年如何以及取得了何种进步. “Time intel

mysql 生成日期维表

第一步,创建函数 f_dim_day create procedure f_dim_day(in start_date VARCHAR(20),in date_count int) begin declare i int; set i=0; DELETE from dim_day; while i<date_count do INSERT into dim_day (DAY_ID,DAY_SHORT_DESC,DAY_LONG_DESC,WEEK_ID,WEEK_LONG_DESC,MONTH_

myeclipse连接mysql生成数据表时中文字符乱码或问号(解决方法)

出现这个问题有以下三步解决思路: 1. 检查myeclipse的编码格式 windows---->Preferences---->general---->Workspace,右侧窗口Text file encoding,选择Other,改变为UTF-8. 此时刷新项目,看能否正常写入中文字符. 2. 检查数据库的编码格式 我用sqlyog连接的数据库,先在询问窗口查询一下编码格式: SHOW VARIABLES LIKE 'character_set_%';结果如下: 检查图中的几项是否

PowerDesigner生成数据库表和逆向生成表结构(MySQL数据库)

一.Download Connector/ODBC下载ODBC驱动,地址:https://dev.mysql.com/downloads/connector/odbc/, 需要注意:PowerDesigner安装的多少位就下载多少位的,一般是32位,建议下载.msi文件直接安装. 二.安装完成后点击powerdesigner的Database--->Configure Connections...--->添加数据源配置,如下图: 三.PDM模型生成数据库sql文件,点击powerdesigne

MySQL WorkBench6.1生成各表关系图

MySQL WorkBench生成各表关系图网上教程很多,但我下的6.1版就死活找不到,不过最终还是找到了.首页的这里 MySQL WorkBench6.1生成各表关系图

Mysql的建表规范与注意事项

一. 表设计规范 库名.表名.字段名必须使用小写字母,“_”分割. 库名.表名.字段名必须不超过12个字符. 库名.表名.字段名见名知意,建议使用名词而不是动词. 建议使用InnoDB存储引擎. 存储精确浮点数必须使用DECIMAL替代FLOAT和DOUBLE. 建议使用UNSIGNED存储非负数值. 建议使用INT UNSIGNED存储IPV4. 整形定义中不添加长度,比如使用INT,而不是INT(4). 使用短数据类型,比如取值范围为0-80时,使用TINYINT UNSIGNED. 不建议

MySQL创建修改表结构

一. 数据库的概述 1.什么是数据库 DB,DataBase 数据库:依照某种数据模型进行组织并存放到存储器的数据集合 DBMS,DataBase Management System 数据库管理系统:用来操纵和管理数据库的大型服务软件 DBS,DataBase System 数据系统:即DB+DBMS,指带有数据库并整合了数据库管理软件的计算       机系统 2.E-R数据模型 实体-关系 模型(Entity-Relationship Model) 3.常见的数据库服务软件 类型 厂商 Or