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 Show Profile
Apr 05 MySQL
mysql死锁和分库分表问题详解
Apr 16 MySQL
解决MySQL存储时间出现不一致的问题
Apr 28 MySQL
MySQL的join buffer原理
Apr 29 MySQL
mysql 8.0.24版本安装配置方法图文教程
May 12 MySQL
MySQL一些常用高级SQL语句
Jul 03 MySQL
MYSQL 运算符总结
Nov 11 MySQL
SQL 聚合、分组和排序
Nov 11 MySQL
MySQL利用UNION连接2个查询排序失效详解
Nov 20 MySQL
MySQL限制查询和数据排序介绍
Mar 25 MySQL
Mysql 8.x 创建用户以及授予权限的操作记录
Apr 18 MySQL
MySQL安装失败的原因及解决步骤
Jun 14 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
用php实现的获取网页中的图片并保存到本地的代码
2010/01/05 PHP
PHP中strtotime函数使用方法详解
2011/11/27 PHP
PHP实现登陆表单提交CSRF及验证码
2017/01/24 PHP
php实现留言板功能(代码详解)
2017/03/28 PHP
php实现的mongoDB单例模式操作类
2018/01/20 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
2019/01/17 PHP
JavaScript中伪协议 javascript:使用探讨
2014/07/18 Javascript
jQuery实现的多级下拉菜单效果代码
2015/08/24 Javascript
Three.js学习之Lamber材质和Phong材质
2016/08/04 Javascript
JavaScript 监控微信浏览器且自带返回按钮时间
2016/11/27 Javascript
javascript设计模式之Adapter模式【适配器模式】实现方法示例
2017/01/13 Javascript
javascript设计模式之模块模式学习笔记
2017/02/15 Javascript
react开发中如何使用require.ensure加载es6风格的组件
2017/05/09 Javascript
Vue中的异步组件函数实现代码
2018/07/20 Javascript
详解jQuery设置内容和属性
2019/04/11 jQuery
如何在JavaScript中谨慎使用代码注释
2019/06/21 Javascript
js 实现watch监听数据变化的代码
2019/10/13 Javascript
vue中封装axios并实现api接口的统一管理
2020/12/25 Vue.js
Python中pygame的mouse鼠标事件用法实例
2015/11/11 Python
Python多线程、异步+多进程爬虫实现代码
2016/02/17 Python
详解Python读取配置文件模块ConfigParser
2017/05/11 Python
python实现监控某个服务 服务崩溃即发送邮件报告
2018/06/21 Python
Django网络框架之HelloDjango项目创建教程
2019/06/06 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
2019/08/07 Python
Python提取PDF内容的方法(文本、图像、线条等)
2019/09/25 Python
通过 Python 和 OpenCV 实现目标数量监控
2020/01/05 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
2020/07/01 Python
Html5移动端获奖无缝滚动动画实现示例
2018/06/25 HTML / CSS
韩国美国时尚服装和美容在线全球市场:KOODING
2018/11/07 全球购物
英国在线药房:Express Chemist
2019/03/28 全球购物
PatPat香港:婴童服饰和亲子全家装在线购物
2020/09/27 全球购物
生物化学研究助理员求职信
2013/10/09 职场文书
财务会计人员岗位职责
2013/11/30 职场文书
安全资金保障制度
2014/01/23 职场文书
工地安全生产标语
2014/06/06 职场文书
小学爱国卫生月活动总结
2014/06/30 职场文书