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 分页查询的优化技巧
May 12 MySQL
MySQL 覆盖索引的优点
May 19 MySQL
修改MySQL的数据库引擎为INNODB的方法
May 26 MySQL
MYSQL主从数据库同步备份配置的方法
May 26 MySQL
MySQL数据库超时设置配置的方法实例
Oct 15 MySQL
分享mysql的current_timestamp小坑及解决
Nov 27 MySQL
MySQL创建表操作命令分享
Mar 25 MySQL
MySQL去除密码登录告警的方法
Apr 20 MySQL
Mysql 数据库中的 redo log 和 binlog 写入策略
Apr 26 MySQL
SQLServer常见数学函数梳理总结
Aug 05 MySQL
MySQL 原理与优化之Update 优化
Aug 14 MySQL
MySQL新手入门进阶语句汇总
Sep 23 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高级对象构建 多个构造函数的使用
2012/02/05 PHP
php 流程控制switch的简单实例
2016/06/07 PHP
实例分析PHP将字符串转换成数字的方法
2019/01/27 PHP
JavaScript事件列表解说
2006/12/22 Javascript
给Javascript数组插入一条记录的代码
2007/08/30 Javascript
收集的一些Array及String原型对象的扩展实现代码
2010/12/05 Javascript
为jQuery添加Webkit的触摸的方法分享
2014/02/02 Javascript
javascript if条件判断方法小结
2014/05/17 Javascript
jquery实现可自动判断位置的弹出层效果代码
2015/10/12 Javascript
Bootstrap富文本组件wysiwyg数据保存到mysql的方法
2016/05/09 Javascript
vue.js+Element实现表格里的增删改查
2017/01/18 Javascript
Javascript中的神器——Promise
2017/02/08 Javascript
JS倒计时实例_天时分秒
2017/08/22 Javascript
浅谈vue路径优化之resolve
2017/10/13 Javascript
VueJs监听window.resize方法示例
2018/01/17 Javascript
基于vue-cli 打包时抽离项目相关配置文件详解
2018/03/07 Javascript
傻瓜式解读koa中间件处理模块koa-compose的使用
2018/10/30 Javascript
防止Layui form表单重复提交的实现方法
2019/09/10 Javascript
jquery实现烟花效果(面向对象)
2020/03/10 jQuery
[05:05]DOTA2亚洲邀请赛 战队出场仪式
2015/02/07 DOTA
[40:03]RNG vs VG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
深入浅析Python 中 is 语法带来的误解
2019/05/07 Python
浅谈django框架集成swagger以及自定义参数问题
2020/07/07 Python
css3圆角边框和边框阴影示例
2014/05/05 HTML / CSS
h5页面背景图很长要有滚动条滑动效果的实现
2021/01/27 HTML / CSS
美国零售商店:Blue&Cream
2017/04/07 全球购物
Gerry Weber德国官网:优质女性时装,德国最大的时装公司之一
2019/11/02 全球购物
幼儿园老师寄语
2014/04/03 职场文书
全国爱眼日活动总结
2015/02/27 职场文书
实习单位推荐信
2015/03/27 职场文书
2015年勤工助学工作总结
2015/04/29 职场文书
张思德观后感
2015/06/09 职场文书
团拜会主持词
2015/07/04 职场文书
详细了解MVC+proxy
2021/07/09 Java/Android
面试被问select......for update会锁表还是锁行
2021/11/11 MySQL
腾讯云服务器部署前后分离项目之前端部署
2022/06/28 Servers