mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)


Posted in MySQL onJune 18, 2021

mysql获取一个时间段中所有日期或者月份

1:mysql获取时间段所有月份

select DATE_FORMAT(date_add('2020-01-20 00:00:00', interval row MONTH),'%Y-%m') date from
 ( 
    SELECT @row := @row + 1 as row FROM 
    (select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t,
    (select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t2, 
    (SELECT @row:=-1) r
 ) se
 where DATE_FORMAT(date_add('2020-01-20 00:00:00', interval row MONTH),'%Y-%m') <= DATE_FORMAT('2020-04-02 00:00:00','%Y-%m')

2:mysql获取时间段所有日期

select date_add('2020-01-20 00:00:00', interval row DAY) date from
 ( 
    SELECT @row := @row + 1 as row FROM 
    (select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t,
    (select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t2, 
    (SELECT @row:=-1) r
 ) se
 where date_add('2020-01-20 00:00:00', interval row DAY) <= '2020-03-02 00:00:00'

备注:

这段代码表示数据条数限制,写两次查询的日期最多显示100条,写三次查询日期最多显示1000次,以此类推,根据你自己的需求决定

下面是设置最多显示条数10000写法

mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)

希望能帮助到你,萌新在线求带!!!

下面是其他网友的补充大家可以参考一下

1、不使用存储过程,不使用临时表,不使用循环在Mysql中获取一个时间段的全部日期

select a.Date 
from (
    select curdate() - INTERVAL (a.a + (10 * b.a) + (100 * c.a)) DAY as Date
    from (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as a
    cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as b
    cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as c
) a
where a.Date between '2017-11-10' and '2017-11-15'

输出如下

Date
----------
2017-11-15
2017-11-14
2017-11-13
2017-11-12
2017-11-11
2017-11-10

2、mysql获取两个日期内的所有日期列表

select @num:=@num+1,date_format(adddate('2015-09-01', INTERVAL @num DAY),'%Y-%m-%d') as date
from btc_user,(select @num:=0) t where adddate('2015-09-01', INTERVAL @num DAY) <= date_format(curdate(),'%Y-%m-%d')
order by date;

此方法优点就是不需要创建存储过程或者是日历表,缺点就是你必须要有一个表,它的数据条数大到足够支撑你要查询的天数

3、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获取指定时间段中的日期与月份内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
MySQL数据迁移相关总结
Apr 29 MySQL
Mysql服务添加 iptables防火墙策略的方案
Apr 29 MySQL
MySQL 使用自定义变量进行查询优化
May 14 MySQL
Navicat连接MySQL错误描述分析
Jun 02 MySQL
mysql left join快速转inner join的过程
Jun 30 MySQL
MySQL高速缓存启动方法及参数详解(query_cache_size)
Jul 01 MySQL
SQL实现LeetCode(180.连续的数字)
Aug 04 MySQL
MySQL令人大跌眼镜的隐式转换
Aug 23 MySQL
MySQL into_Mysql中replace与replace into用法案例详解
Sep 14 MySQL
分享mysql的current_timestamp小坑及解决
Nov 27 MySQL
Mysql外键约束的创建与删除的使用
Mar 03 MySQL
MySQL数据库安装方法与图形化管理工具介绍
May 30 MySQL
MySQL REVOKE实现删除用户权限
Jun 18 #MySQL
MySQL GRANT用户授权的实现
Jun 18 #MySQL
浅谈MySQL user权限表
Jun 18 #MySQL
解决mysql模糊查询索引失效问题的几种方法
Jun 18 #MySQL
MySQL 亿级数据导入导出及迁移笔记
如何使用分区处理MySQL的亿级数据优化
Jun 18 #MySQL
详解MySQL中的pid与socket
Jun 15 #MySQL
You might like
php构造函数的继承方法
2015/02/09 PHP
在textarea文本域中显示HTML代码的方法
2007/03/06 Javascript
自己的js工具 Cookie 封装
2009/08/21 Javascript
javascript设计模式 封装和信息隐藏(上)
2012/07/24 Javascript
js控制CSS样式属性语法对照表
2012/12/11 Javascript
raphael.js绘制中国地图 地图绘制方法
2014/02/12 Javascript
Bootstrap每天必学之表格
2015/11/23 Javascript
在WordPress中加入Google搜索功能的简单步骤讲解
2016/01/04 Javascript
聊一聊JavaScript作用域和作用域链
2016/05/03 Javascript
Javascript基础_标记文字的实现方法
2016/06/14 Javascript
深入理解js generator数据类型
2016/08/16 Javascript
基于Node.js + WebSocket打造即时聊天程序嗨聊
2016/11/29 Javascript
jQuery中Chosen三级联动功能实例代码
2017/03/07 Javascript
教你用十行node.js代码读取docx的文本
2017/03/08 Javascript
原生js中ajax访问的实例详解
2017/09/19 Javascript
利用Node.js检测端口是否被占用的方法
2017/12/07 Javascript
vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)
2018/11/05 Javascript
小程序云函数调用API接口的方法
2019/05/17 Javascript
vue中的面包屑导航组件实例代码
2019/07/01 Javascript
jquery实现的放大镜效果示例
2020/02/24 jQuery
vue实现移动端返回顶部
2020/10/12 Javascript
vue 动态生成拓扑图的示例
2021/01/03 Vue.js
python基础知识小结之集合
2015/11/25 Python
Scrapy基于selenium结合爬取淘宝的实例讲解
2018/06/13 Python
Python线程之定位与销毁的实现
2019/02/17 Python
Python实现GIF图倒放
2020/07/16 Python
Python中Pyspider爬虫框架的基本使用详解
2021/01/27 Python
波兰最大的儿童服装连锁店之一:5.10.15.
2018/02/11 全球购物
尼克松手表官网:Nixon手表
2019/03/17 全球购物
俄罗斯在线大型超市:ТутПросто
2021/01/08 全球购物
问卷调查计划书
2014/01/10 职场文书
出国留学计划书
2014/04/27 职场文书
求职信格式要求
2014/05/23 职场文书
校园广播稿100字
2014/10/06 职场文书
2015商场元旦促销活动策划方案
2014/12/09 职场文书
总结Python变量的相关知识
2021/06/28 Python