mysql中between的边界,范围说明


Posted in MySQL onJune 08, 2021

mysql between的边界范围

between 的范围是包含两边的边界值

eg: id between 3 and 7 等价与 id >=3 and id<=7

not between 的范围是不包含边界值

eg:id not between 3 and 7 等价与 id < 3 or id>7

SELECT * FROM `test` where id BETWEEN 3 and 7;
等价于 SELECT * FROM `test` where id>=3 and id<=7;
-----------------------------------------------------------
SELECT * FROM `test` where id NOT BETWEEN 3 and 7;
等价于 SELECT * FROM `test` where id<3 or id>7;

mysql between日期边界的问题留意

边界问题:

mysql, between 开始日期 AND 结束日期 包含开始日期,不包含结束日期

例如:

BETWEEN '2018-01-22' AND  '2018-01-30'

开始日期从2018-01-22 00:00:00.0 开始, 到2018-01-29 23:59:59.59结束

表中的CREATE_DATE 是varchar(21) DEFAULT NULL COMMENT '时间',

CREATE_DATE中保存值是: 年-月-日 时:分:秒:0 例如: 2018-01-29 23:45:35.0

SELECT *  FROM  Test  a WHERE  a.CREATE_DATE BETWEEN '2018-01-22' AND  '2018-01-30'   
ORDER BY a.CREATE_DATE desc

mysql中between的边界,范围说明

SELECT *  FROM TABEL a WHERE  a.CREATE_DATE BETWEEN '2018-01-22' AND  '2018-01-30'   
ORDER BY a.CREATE_DATE desc
    2018-01-29 23:45:35.0    20180129
    2018-01-29 23:45:33.0    20180129
    2018-01-29 00:10:58.0    20180129
    2018-01-29 00:10:45.0    20180129
    2018-01-28 23:42:23.0    20180128
    2018-01-28 23:39:39.0    20180128
SELECT *  FROM TABEL a WHERE  a.CREATE_DATE BETWEEN '2018-01-22' AND  '2018-01-29'   
ORDER BY a.CREATE_DATE desc
    2018-01-28 23:42:23.0    20180128
    2018-01-28 23:39:39.0    20180128
    2018-01-28 00:13:22.0    20180128
    2018-01-28 00:13:19.0    20180128
    2018-01-27 23:23:02.0    20180127
    2018-01-22 00:09:59.0    20180122
    2018-01-22 00:09:56.0    20180122
    2018-01-22 00:01:53.0    20180122

遇到的其他问题:

遇到另外一张表 test2 有保存时间的字段: `REPORTTIME` varchar(45) DEFAULT NULL,

这个字段保存的值是:

mysql中between的边界,范围说明

例子1:

select *  from bips_hpd_helpdesk a WHERE  str_to_date(from_unixtime(a.REPORTTIME,'%Y-%m-%d'),'%Y-%m-%d') 
BETWEEN '2018-01-16' AND '2018-01-27' ORDER BY from_unixtime(a.REPORTTIME,'%Y-%m-%d') DESC ;

结果1:

mysql中between的边界,范围说明

从结果中,可以看到取到了27号的数据,可能是处理的时间没有 小时,分钟,秒。

例子2:

select *  from bips_hpd_helpdesk a WHERE  str_to_date(from_unixtime(a.REPORTTIME,'%Y-%m-%d'),'%Y-%m-%d') 
BETWEEN str_to_date('2018-01-16','%Y-%m-%d') AND str_to_date('2018-01-27','%Y-%m-%d')

结果2:

mysql中between的边界,范围说明

找到问题: 毫秒值转换为时间,发现这里保存的毫秒值,没有保存时分秒:

from_unixtime(a.REPORTTIME,'%Y-%m-%d') AS reportTime,a.REPORTTIME,  
             str_to_date(from_unixtime(a.REPORTTIME,'%Y-%m-%d'),'%Y-%m-%d %h:%i:%s') AS reportTime22
        FROM test  a WHERE  str_to_date(from_unixtime(a.REPORTTIME,'%Y-%m-%d'),'%Y-%m-%d %h:%i:%s') 
        BETWEEN str_to_date('2018-01-16','%Y-%m-%d %h:%i:%s') AND str_to_date('2018-01-27 %h:%i:%s','%Y-%m-%d')
     #subdate(curdate(),date_format(curdate(),'%w')-1) AND subdate(curdate(),date_format(curdate(),'%w')-8)
        ORDER BY from_unixtime(a.REPORTTIME,'%Y-%m-%d') DESC ;

查看到的时间值:

mysql中between的边界,范围说明

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

MySQL 相关文章推荐
详解MySQL的Seconds_Behind_Master
May 18 MySQL
MySQL官方导出工具mysqlpump的使用
May 21 MySQL
修改MySQL的数据库引擎为INNODB的方法
May 26 MySQL
Mysql存储过程、触发器、事件调度器使用入门指南
Jan 22 MySQL
mysql中数据库覆盖导入的几种方式总结
Mar 25 MySQL
MySQL实现配置主从复制项目实践
Mar 31 MySQL
聊聊mysql都有哪几种分区方式
Apr 13 MySQL
MySQL中的全表扫描和索引树扫描
May 15 MySQL
Mysql表数据比较大情况下修改添加字段的方法实例
Jun 28 MySQL
MySQL自定义函数及触发器
Aug 05 MySQL
MySQL 原理与优化之Update 优化
Aug 14 MySQL
详解MySQL的内连接和外连接
May 08 MySQL
MySQL 百万级数据的4种查询优化方式
MySQL 全文检索的使用示例
Jun 07 #MySQL
MySQL 常见的数据表设计误区汇总
Jun 07 #MySQL
浅谈MySQL next-key lock 加锁范围
MySQL为id选择合适的数据类型
MySQL单表千万级数据处理的思路分享
Jun 05 #MySQL
MySQL 时间类型的选择
Jun 05 #MySQL
You might like
服务器web工具 php环境下
2010/12/29 PHP
php生成静态文件的多种方法分享
2012/07/17 PHP
php中get_headers函数的作用及用法的详细介绍
2013/04/27 PHP
初识Laravel
2014/10/30 PHP
浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
2015/10/26 PHP
php生成微信红包数组的方法
2019/09/05 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
2019/09/30 PHP
javascript静态的url如何传递
2007/05/03 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2012/01/21 Javascript
Javascript this 的一些学习总结
2012/08/02 Javascript
仿当当网淘宝网等主流电子商务网站商品分类导航菜单
2013/09/25 Javascript
jquery五角星评分插件示例分享
2014/02/21 Javascript
jquery通过visible来判断标签是否显示或隐藏
2014/05/08 Javascript
javascript消除window.close()的提示窗口
2015/05/20 Javascript
JQuery中DOM事件合成用法实例分析
2015/06/13 Javascript
js右下角弹出提示框示例代码
2016/01/12 Javascript
js实现简易垂直滚动条
2017/02/22 Javascript
requirejs按需加载angularjs文件实例
2017/06/08 Javascript
bootstrap table实现双击可编辑、添加、删除行功能
2017/09/27 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
2018/07/10 Javascript
vue使用一些外部插件及样式的配置代码
2019/11/18 Javascript
基于原生JS封装的Modal对话框插件的示例代码
2020/09/09 Javascript
如何使用七牛Python SDK写一个同步脚本及使用教程
2015/08/23 Python
asyncio 的 coroutine对象 与 Future对象使用指南
2016/09/11 Python
Python画柱状统计图操作示例【基于matplotlib库】
2018/07/04 Python
基于数据归一化以及Python实现方式
2018/07/11 Python
Pytorch Tensor 输出为txt和mat格式方式
2020/01/03 Python
Python unittest单元测试框架实现参数化
2020/04/29 Python
Bibloo奥地利:购买女装、男装、童装、鞋和配件
2018/10/18 全球购物
一套中级Java程序员笔试题
2015/01/14 面试题
效能风暴心得体会
2014/09/04 职场文书
简易离婚协议书范本
2014/10/24 职场文书
群众路线剖析材料(四风)
2014/11/05 职场文书
电影地道战观后感
2015/06/04 职场文书
2016年中学端午节主题活动总结
2016/04/01 职场文书
MySQL如何使备份得数据保持一致
2022/05/02 MySQL