美文网首页
MySQL 生成日期表

MySQL 生成日期表

作者: 这货不是王马勺 | 来源:发表于2022-01-07 11:03 被阅读0次

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

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

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

CREATE TABLE  if not exists calendar(datelist date);

3.生成并插入日期数据

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;

4.最后再添加主键即可

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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
=============================================================

相关文章

网友评论

      本文标题:MySQL 生成日期表

      本文链接:https://www.haomeiwen.com/subject/qhljcrtx.html