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的连接查询
Jun 03 MySQL
记一次Mysql不走日期字段索引的原因小结
Oct 24 MySQL
mysql主从复制的实现步骤
Oct 24 MySQL
MYSQL 表的全面总结
Nov 11 MySQL
千万级用户系统SQL调优实战分享
Mar 03 MySQL
面试提问mysql一张表到底能存多少数据
Mar 13 MySQL
分享MySQL常用 内核 Debug 几种常见方法
Mar 17 MySQL
关于MySQL临时表为什么可以重名的问题
Mar 22 MySQL
navicat 连接Ubuntu虚拟机的mysql的操作方法
Apr 02 MySQL
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
Apr 09 MySQL
mysql通过group by分组取最大时间对应数据的两种有效方法
Sep 23 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多线程批量采集下载美女图片的实现代码(续)
2013/06/03 PHP
Symfony的安装和配置方法
2016/03/17 PHP
js 获取class的元素的方法 以及创建方法getElementsByClassName
2013/03/11 Javascript
jquery中使用循环下拉菜单示例代码
2014/09/24 Javascript
js+CSS实现弹出居中背景半透明div层的方法
2015/02/26 Javascript
12行javascript代码绘制一个八卦图
2015/04/02 Javascript
JavaScript中String.match()方法的使用详解
2015/06/06 Javascript
搞定immutable.js详细说明
2016/05/02 Javascript
原生js实现手风琴功能(支持横纵向调用)
2017/01/13 Javascript
JS运动改变单物体透明度的方法分析
2018/01/23 Javascript
Bootstrap 按钮样式与使用代码详解
2018/12/09 Javascript
移动端如何用下拉刷新的方式实现上拉加载
2018/12/10 Javascript
vue通过video.js解决m3u8视频播放格式的方法
2019/07/30 Javascript
jQuery - AJAX load() 实例用法详解
2019/08/27 jQuery
微信小程序select下拉框实现源码
2019/11/08 Javascript
[02:46]2014DOTA2国际邀请赛 选手为你解读比赛MVP充满梦想
2014/07/09 DOTA
python实现随机密码字典生成器示例
2014/04/09 Python
Python程序设计入门(2)变量类型简介
2014/06/16 Python
python获取局域网占带宽最大3个ip的方法
2015/07/09 Python
python实现电脑自动关机
2018/06/20 Python
对Python正则匹配IP、Url、Mail的方法详解
2018/12/25 Python
解决Django中多条件查询的问题
2019/07/18 Python
python中@property和property函数常见使用方法示例
2019/10/21 Python
Pytorch的mean和std调查实例
2020/01/02 Python
Python排序函数的使用方法详解
2020/12/11 Python
HTML5 CSS3打造相册效果附源码下载
2014/06/16 HTML / CSS
GWT (Google Web Toolkit)有哪些主要的原件组成?
2015/06/08 面试题
党校个人自我鉴定范文
2014/03/28 职场文书
大学生档案自我鉴定(2篇)
2014/10/14 职场文书
业务员岗位职责
2015/02/03 职场文书
值班管理制度范本
2015/08/06 职场文书
小学语文教师研修日志
2015/11/13 职场文书
2016党员干部廉政准则学习心得体会
2016/01/20 职场文书
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript
pytorch 如何使用amp进行混合精度训练
2021/05/24 Python
Springboot如何同时装配两个相同类型数据库
2021/11/17 Java/Android