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 EXPLAIN输出列的详细解释
May 12 MySQL
MySQL系列之二 多实例配置
Jul 02 MySQL
mysql配置SSL证书登录的实现
Sep 04 MySQL
MySQL数据库必备之条件查询语句
Oct 15 MySQL
mysql事务对效率的影响分析总结
Oct 24 MySQL
mysql sum(if())和count(if())的用法说明
Jan 18 MySQL
简单聊一聊SQL注入及防止SQL注入
Mar 23 MySQL
mysql的Buffer Pool存储及原理
Apr 02 MySQL
聊聊mysql都有哪几种分区方式
Apr 13 MySQL
MySQL8.0 Undo Tablespace管理详解
Jun 16 MySQL
MySQL数据库配置信息查看与修改方法详解
Jun 25 MySQL
MySQL导致索引失效的几种情况
Jun 25 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 api函数实现数组的交换排序示例
2014/04/13 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
2015/03/18 PHP
PHP调用存储过程返回值不一致问题的解决方法分析
2016/04/26 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
2016/11/03 PHP
JavaScript setTimeout和setInterval的使用方法 说明
2010/03/25 Javascript
基于JQUERY的两个ListBox子项互相调整的实现代码
2011/05/07 Javascript
js展开闭合效果演示代码
2013/07/24 Javascript
JS注释所产生的bug 即使注释也会执行
2013/11/19 Javascript
js清除input中type等于file的值域(示例代码)
2013/12/24 Javascript
深入理解JavaScript系列(45):代码复用模式(避免篇)详解
2015/03/04 Javascript
jQuery焦点控制图层展示延迟隐藏的方法
2015/03/09 Javascript
JS判断页面是否出现滚动条的方法
2015/07/17 Javascript
Bootstrap框架结合jQuery仿百度换肤功能实例解析
2016/09/17 Javascript
Jq通过td获取同行其它列td的方法
2016/10/05 Javascript
微信小程序 使用canvas制作K线实例详解
2017/01/12 Javascript
在weex中愉快的使用scss的方法步骤
2020/01/02 Javascript
uni-app实现获取验证码倒计时功能
2020/11/01 Javascript
详解Vue.js 可拖放文本框组件的使用
2021/03/03 Vue.js
python 实现自动远程登陆scp文件实例代码
2017/03/13 Python
pycharm 取消默认的右击运行unittest的方法
2018/11/29 Python
python调用opencv实现猫脸检测功能
2019/01/15 Python
纯css3实现思维导图样式示例
2018/11/01 HTML / CSS
一款html5 canvas实现的图片玻璃碎片特效
2014/09/11 HTML / CSS
HTML5开发动态音频图的实现
2020/07/02 HTML / CSS
英国汽车和货车租赁网站:Hertz英国
2016/09/02 全球购物
英国音乐设备和乐器商店:Gear4music
2017/10/16 全球购物
最新创业融资计划书
2014/01/19 职场文书
优秀党务工作者事迹材料
2014/05/07 职场文书
质量标语大全
2014/06/12 职场文书
2015关于重阳节的演讲稿
2015/03/20 职场文书
2015年组织部工作总结
2015/04/03 职场文书
关于迟到的检讨书
2015/05/06 职场文书
Nginx代理同域名前后端分离项目的完整步骤
2021/03/31 Servers
MySQL InnoDB ReplicaSet(副本集)简单介绍
2021/04/24 MySQL
学习nginx基础知识
2021/09/04 Servers
Python爬虫入门案例之爬取二手房源数据
2021/10/16 Python