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

Posted liangmingming

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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‘);

  

 

以上是关于mysql获取给定时间段内的所有日期列表的主要内容,如果未能解决你的问题,请参考以下文章

Mysql 将给定日期范围内的每日总计转化为每周总计

查询以获取亚马逊红移中给定日期到 48 小时内的数据

使用 json rereiver php mysql 在片段中填充列表视图

Mysql生成任意指定两时间范围内的日期列表

mysql返回一段时间内的所有日期

用于 WordPress 的 PHP 片段,用于获取所有产品子类别