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
相关文章
- MySQL 数据库的二进制备份与恢复(mysql二进制备份)
- Mysql实现日期计算的方法(mysql计算日期)
- 中的应用Java中MySQL的灵活运用(mysql在java代码)
- 的函数MySQL 求日期所在周的函数探究(mysql日期周几)
- 类MySQL自动生成实体类技术实现(mysql生成实体)
- MySQL数据库:插入和查询技巧(mysql插入查询)
- 查询MySQL中如何实现日期区间查询(mysql日期区间)
- Mysql数据库文件文件导出操作指南(mysql文件导出)
- MySQL数据库之合并双字段(mysql两个字段合并)
- MySQL高效存储大字段类型的技术(mysql存储大字段类型)
- MySQL 时间戳转换为日期的简单方法(mysql时间戳转日期)
- MySQL登陆界面:安全可靠的管理数据库的入口(mysql登陆界面)
- MySQL如何将时间戳转换成日期格式?(mysql将时间戳)
- Redis助力MySQL提升数据处理能力(redis替代mysql)
- 计算MySQL日期差:实现最优解(mysql日期差)
- MySQL日期函数支持小时数转换(mysql日期小时)
- 燕十八分享MySQL笔记,助力数据库管理。(燕十八mysql笔记)
- MySQL随机数获取指南(mysql 取随机数)
- MySQL日期加减技巧,轻松实现日期操作(mysql中做日期加减)
- 如何在MySQL中获取今天的日期(mysql中今天的日期)
- 使用MySQL实现唯一标识的生成(mysql中产生唯一标识)
- 服务器C语言连接MySQL本地服务器实践(c mysql连接到本地)
- MySQL事务处理C语言实现简易功能(c mysql事务语句)
- 了解MySQL中简便的减法运算方法(mysql中减法运算)
- 轻松实现MySQL文件一键生成(mysql一键生成文件)
- MySQL日期函数一年内的日期查询(mysql 一年的日期)
- MySQL下载是否繁琐快速获取建议(mysql下载麻烦吗)
- MySQL 数据库如何处理上传日期(mysql 上传日期)
- 如何在MySQL中去除并不显示重复的行(mysql不显示重复行)