• mysql获取给定时间段内的所有日期列表


    DELIMITER $$
    DROP PROCEDURE IF EXISTS create_calendar $$
    CREATE PROCEDURE create_calendar (s_date DATE, e_date DATE)
    BEGIN
      -- 生成一个日历表
        SET @createSql = 'CREATE TABLE IF NOT EXISTS calendar_custom (
                          `date` date NOT NULL,
                          UNIQUE KEY `unique_date` (`date`) USING BTREE
                          )ENGINE=InnoDB DEFAULT CHARSET=utf8';
        prepare stmt from @createSql;
        execute stmt;
        WHILE s_date <= e_date DO
            INSERT IGNORE INTO calendar_custom VALUES (DATE(s_date)) ;
            SET s_date = s_date + INTERVAL 1 DAY ;
        END WHILE ;
    END$$
    DELIMITER ;
    
    -- 生成数据到calendar_custom表2009-01-01~2029-01-01之间的所有日期数据
    CALL create_calendar ('2009-01-01', '2029-01-01');
    

      

    DELIMITER $$
    DROP PROCEDURE IF EXISTS create_calendar $$
    CREATE PROCEDURE create_calendar (s_date DATE, e_date DATE)
    BEGIN
      
      -- 生成一个日历表
        SET @createSql = 'truncate TABLE  calendar_custom';
        prepare stmt from @createSql;
        execute stmt;
      
        WHILE s_date <= e_date DO
            INSERT IGNORE INTO calendar_custom VALUES (DATE(s_date)) ;
            SET s_date = s_date + INTERVAL 1 DAY ;
        END WHILE ;
      
    END$$
    DELIMITER ;
     
    -- 生成数据到calendar_custom表2009-01-01~2029-01-01之间的所有日期数据
     CALL create_calendar ('2009-01-02', '2009-01-07');
    

      

     
  • 相关阅读:
    1301班 github安装及账户注册
    对于软件工程课程的疑问
    LeetCode50:Pow
    LeetCode49:字母异位词分组
    LeetCode46:全排列
    LeetCode38:外观数列
    LeetCode:有效的数独
    LeetCode34:在排序数组中查找元素的第一个位置和最后一个位置
    LeetCode33:搜索旋转排序数组
    LeetCode29:两数相除
  • 原文地址:https://www.cnblogs.com/liangmm/p/12938857.html
Copyright © 2020-2023  润新知