Mysql生成任意指定两时间范围内的日期列表(三种方法) |
您所在的位置:网站首页 › 日期期间 › Mysql生成任意指定两时间范围内的日期列表(三种方法) |
前言:工作当中有一个场景是数据库存了一些数据,但是日期是零碎的,只有当用户进行了相应日期的操作才会有对应记录的生成。此时有一个需求就是要让用户看到哪个日期有操作,哪个日期没有操作。此时就需要有一个表可以提供一段时间范围内的所有日期。 在看这篇文章以前呢,得明白几个知识点,存储过程(如何创建,如何调用,好处是什么)、变量(如何创建,赋值,使用)、DATE_SUB、DATE_FORMAT、 在网上查找资料,看到的有三种方法,总结如下 一、创建存储过程(即创建一个临时的日历表。我是这样理解的), 例一: 以下是我从别人的博客抄过来的例子,这个例子是将日期范围写在创建的逻辑当中,感兴趣的伙伴可以试一下执行,当执行了调用的语句可以查看自己数据库中是否多了一张表。 例二: 这是另外一个创建存储过程,不同于以上的例子,这个可以直接在调用的时候给时间范围。对于日期范围需要和用户交互,需要灵活更改的,这个方法更加适用 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 ( `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 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |