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 表空间碎片的概念及相关问题解决
May 07 MySQL
详解MySQL主从复制及读写分离
May 07 MySQL
MySQL中distinct与group by之间的性能进行比较
May 26 MySQL
Mysql中存储引擎的区别及比较
Jun 04 MySQL
MySQL笔记 —SQL运算符
Jan 18 MySQL
解决MySQL添加新用户-ERROR 1045 (28000)的问题
Mar 03 MySQL
navicat 连接Ubuntu虚拟机的mysql的操作方法
Apr 02 MySQL
一文简单了解MySQL前缀索引
Apr 03 MySQL
MySQL如何使备份得数据保持一致
May 02 MySQL
MySQL中的全表扫描和索引树扫描
May 15 MySQL
Mysql将字符串按照指定字符分割的正确方法
May 30 MySQL
手把手带你彻底卸载MySQL数据库
Jun 14 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中如何执行linux命令详解
2018/11/06 PHP
PHP实现的pdo连接数据库并插入数据功能简单示例
2019/03/30 PHP
php实现大文件断点续传下载实例代码
2019/10/01 PHP
PHP unset函数原理及使用方法解析
2020/08/14 PHP
PHP7新增函数
2021/03/09 PHP
在视频前插入广告
2006/11/20 Javascript
jQuery Study Notes学习笔记 (二)
2010/08/04 Javascript
jquery控制左右箭头滚动图片列表的实例
2013/05/20 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
jQuery中scrollLeft()方法用法实例
2015/01/16 Javascript
jQuery模拟select实现下拉菜单功能
2016/06/20 Javascript
xcode中获取js文件的路径方法(推荐)
2016/11/05 Javascript
进阶之初探nodeJS
2017/01/24 NodeJs
Vue.js bootstrap前端实现分页和排序
2017/03/10 Javascript
jQuery插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
2017/03/21 jQuery
JS FormData上传文件的设置方法
2017/07/05 Javascript
使用原生js+canvas实现模拟心电图的实例
2017/09/20 Javascript
浅谈AngularJS中$http服务的简单用法
2018/05/15 Javascript
如何安装控制器JavaScript生成插件详解
2018/10/21 Javascript
vue 属性拦截实现双向绑定的实例代码
2018/10/24 Javascript
详解微信小程序回到顶部的两种方式
2019/05/09 Javascript
解决layui调用自定义方法提示未定义的问题
2019/09/14 Javascript
[01:15:29]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第三局
2016/03/04 DOTA
Python的Urllib库的基本使用教程
2015/04/30 Python
通过源码分析Python中的切片赋值
2017/05/08 Python
python 调用钉钉机器人的方法
2019/02/20 Python
python lambda函数及三个常用的高阶函数
2020/02/05 Python
python中的错误如何查看
2020/07/08 Python
pycharm中选中一个单词替换所有重复单词的实现方法
2020/11/17 Python
python实现PolynomialFeatures多项式的方法
2021/01/06 Python
美体小铺瑞典官方网站:The Body Shop瑞典
2018/01/27 全球购物
.net笔试题
2014/03/03 面试题
数控技校生自我鉴定
2014/03/02 职场文书
六一儿童节新闻稿
2015/07/17 职场文书
《秋天的怀念》教学反思
2016/02/17 职场文书
面试必问:圣杯布局和双飞翼布局的区别
2021/05/13 HTML / CSS