zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    重构之重新组织函数(Split Temporary Variable)
    HammperSpoon 不能 Focus Google Chrome 的问题
    如何让 vim 可以在命令行执行命令并且附加参数
    This bison version is not supported for regeneration of the Zend/PHP parsers
    php cURL library is not loaded
    aws linuxbrew GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2
    gen-cpp/.deps/ChildService.Plo: No such file or directory
    快速解码base64和utf-8的ASCII编码和URL解码
    英文版firefox显示中文字体丑的问题
    linux find 反转 查找没有被找到的结果
  • 原文地址:https://www.cnblogs.com/apolloren/p/12247294.html
Copyright © 2011-2022 走看看