Mysql生成任意指定两时间范围内的日期列表(三种方法)

您所在的位置:网站首页 日期期间 Mysql生成任意指定两时间范围内的日期列表(三种方法)

Mysql生成任意指定两时间范围内的日期列表(三种方法)

2024-07-13 19:21| 来源: 网络整理| 查看: 265

前言:工作当中有一个场景是数据库存了一些数据,但是日期是零碎的,只有当用户进行了相应日期的操作才会有对应记录的生成。此时有一个需求就是要让用户看到哪个日期有操作,哪个日期没有操作。此时就需要有一个表可以提供一段时间范围内的所有日期。

在看这篇文章以前呢,得明白几个知识点,存储过程(如何创建,如何调用,好处是什么)、变量(如何创建,赋值,使用)、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