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 13 MySQL
linux下导入、导出mysql数据库命令的实现方法
May 26 MySQL
Mysql systemctl start mysqld报错的问题解决
Jun 03 MySQL
MySQL系列之一 MariaDB-server安装
Jul 02 MySQL
MySQL系列之十一 日志记录
Jul 02 MySQL
MySQL深度分页(千万级数据量如何快速分页)
Jul 25 MySQL
SQL基础的查询语句
Nov 11 MySQL
全面盘点MySQL中的那些重要日志文件
Nov 27 MySQL
面试提问mysql一张表到底能存多少数据
Mar 13 MySQL
mysql 体系结构和存储引擎介绍
May 06 MySQL
MySQL串行化隔离级别(间隙锁实现)
Jun 16 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代码实现页面伪静态的方法
2015/07/25 PHP
php基础设计模式大全(注册树模式、工厂模式、单列模式)
2015/08/31 PHP
Apache启动报错No space left on device: AH00023该怎么解决
2015/10/16 PHP
js 数组克隆方法 小结
2010/03/20 Javascript
jQuery 1.5.1 发布,全面支持IE9 修复大量bug
2011/02/26 Javascript
jQuery Ajax提交表单查询获得数据实例代码
2012/09/19 Javascript
jQuery自动添加表单项的方法
2015/07/13 Javascript
jquery的checkbox,radio,select等方法小结
2016/08/30 Javascript
简单实现js进度条加载效果
2020/03/25 Javascript
vue组件横向树实现代码
2018/08/02 Javascript
在Vuex使用dispatch和commit来调用mutations的区别详解
2018/09/18 Javascript
原生js实现二级联动菜单
2019/11/27 Javascript
vscode+gulp轻松开发小程序的完整步骤
2020/10/18 Javascript
[46:03]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[37:29]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.19
2020/11/19 DOTA
Python 返回汉字的汉语拼音
2009/02/27 Python
布同 统计英文单词的个数的python代码
2011/03/13 Python
Python 装饰器使用详解
2017/07/29 Python
pandas中Timestamp类用法详解
2017/12/11 Python
Python 实现淘宝秒杀的示例代码
2018/01/02 Python
Python中的函数作用域
2018/05/07 Python
对python 匹配字符串开头和结尾的方法详解
2018/10/27 Python
Python学习笔记之pandas索引列、过滤、分组、求和功能示例
2019/06/03 Python
python and or用法详解
2019/06/26 Python
git查看、创建、删除、本地、远程分支方法详解
2020/02/18 Python
Django配置Bootstrap, js实现过程详解
2020/10/13 Python
Python远程linux执行命令实现
2020/11/11 Python
CSS3中的opacity属性使用教程
2015/08/19 HTML / CSS
无需JS和jQuery代码实现CSS3鼠标浮动放大图片
2016/11/21 HTML / CSS
DHC美国官网:日本通信销售第一的化妆品品牌
2017/11/12 全球购物
将一个文本文件的内容按倒序打印出来
2015/01/05 面试题
运动会跳远广播稿
2014/02/04 职场文书
电子信息专业自荐书
2014/02/04 职场文书
法人委托书范本格式
2014/09/15 职场文书
画展邀请函
2015/01/31 职场文书
详解Java分布式事务的 6 种解决方案
2021/06/26 Java/Android