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 14 MySQL
Unity连接MySQL并读取表格数据的实现代码
Jun 20 MySQL
mysql5.6主从搭建以及不同步问题详解
Dec 04 MySQL
MySQL日期时间函数知识汇总
Mar 17 MySQL
分享MySQL常用 内核 Debug 几种常见方法
Mar 17 MySQL
Mysql如何实现不存在则插入,存在则更新
Mar 25 MySQL
MySQL数据库优化之通过索引解决SQL性能问题
Apr 10 MySQL
mysql查找连续出现n次以上的数字
May 11 MySQL
MySQL脏读,幻读和不可重复读
May 11 MySQL
MySQL详解进行JDBC编程与增删改查方法
Jun 16 MySQL
MySql统计函数COUNT的具体使用详解
Aug 14 MySQL
MySQL索引失效十种场景与优化方案
May 08 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
破解图片防盗链的代码(asp/php)测试通过
2010/07/02 PHP
php中的三元运算符使用说明
2011/07/03 PHP
php第一次无法获取cookie问题处理
2014/12/15 PHP
php模拟post提交数据的方法
2015/02/12 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
2017/01/17 PHP
PHP实现的一致性Hash算法详解【分布式算法】
2018/03/31 PHP
thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
2020/03/02 PHP
一个基于jquery的图片切换效果
2010/07/06 Javascript
asp.net 30分钟掌握无刷新 Repeater
2011/09/16 Javascript
转换字符串为json对象的方法详解
2013/11/29 Javascript
使用js显示当前时间示例
2014/03/02 Javascript
AngularJS入门教程(一):静态模板
2014/12/06 Javascript
jQuery Ajax调用WCF服务详细教程
2015/03/31 Javascript
JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果
2015/11/26 Javascript
老生常谈javascript变量的命名规范和注释
2016/09/29 Javascript
js实现3D图片环展示效果
2017/03/09 Javascript
Javascript继承机制详解
2017/05/30 Javascript
Vue非父子组件通信详解
2017/06/12 Javascript
js实现数组内数据的上移和下移的实例
2017/11/14 Javascript
jQuery EasyUI 折叠面板accordion的使用实例(分享)
2017/12/25 jQuery
vue-cli3环境变量与分环境打包的方法示例
2019/02/18 Javascript
vue+express+jwt持久化登录的方法
2019/06/14 Javascript
vue之封装多个组件调用同一接口的案例
2020/08/11 Javascript
[46:09]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第三场
2014/05/26 DOTA
ansible作为python模块库使用的方法实例
2017/01/17 Python
Python中元组,列表,字典的区别
2017/05/21 Python
CSS3 linear-gradient线性渐变生成加号和减号的方法
2017/11/21 HTML / CSS
html5 利用canvas手写签名并保存的实现方法
2018/07/12 HTML / CSS
欧迪办公美国官网:Office Depot
2016/08/22 全球购物
美国单身专业人士在线约会网站:EliteSingles
2019/03/19 全球购物
巴西购物网站:Onofre Agora
2020/06/08 全球购物
连锁经营管理专业大学生求职信
2013/10/30 职场文书
英文留学推荐信范文
2014/01/25 职场文书
2014年两会学习心得范例
2014/03/17 职场文书
关于九一八事变的演讲稿2014
2014/09/17 职场文书
mysql 获取时间方式
2022/03/20 MySQL