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 pt-slave-restart工具的使用简介
Apr 07 MySQL
MySQL性能压力基准测试工具sysbench的使用简介
Apr 21 MySQL
浅谈mysql执行过程以及顺序
May 12 MySQL
MySQL 重命名表的操作方法及注意事项
May 21 MySQL
新手入门Mysql--sql执行过程
Jun 20 MySQL
MySQL开启事务的方式
Jun 26 MySQL
关于MySQL临时表为什么可以重名的问题
Mar 22 MySQL
MySQL视图概念以及相关应用
Apr 19 MySQL
MySQL批量更新不同表中的数据
May 11 MySQL
MySql数据库 查询时间序列间隔
May 11 MySQL
MySQL添加索引特点及优化问题
Jul 23 MySQL
mysql函数之截取字符串的实现
Aug 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正则表达式替换站点关键字链接后空白的解决方法
2014/09/16 PHP
php curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法
2015/11/30 PHP
php5.6.x到php7.0.x特性小结
2019/08/17 PHP
JavaScript Event事件学习第一章 Event介绍
2010/02/07 Javascript
JS操作CSS随机改变网页背景实现思路
2014/03/10 Javascript
选择复选框按钮置灰否则按钮可用
2014/05/22 Javascript
IE8中动态创建script标签onload无效的解决方法
2014/12/22 Javascript
javascript中定义类的方法汇总
2014/12/28 Javascript
AngularJS ng-bind 指令简单实现
2016/07/30 Javascript
利用Node.js制作爬取大众点评的爬虫
2016/09/22 Javascript
微信小程序 二维码canvas绘制实例详解
2017/01/06 Javascript
jQuery实现返回顶部按钮和scroll滚动功能[带动画效果]
2017/07/05 jQuery
javaScript和jQuery自动加载简单代码实现方法
2017/11/24 jQuery
Bootstrap实现的表格合并单元格示例
2018/02/06 Javascript
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
2018/04/03 Javascript
详解Vue中使用Echarts的两种方式
2018/07/03 Javascript
vue点击页面空白处实现保存功能
2019/11/06 Javascript
react antd表格中渲染一张或多张图片的实例
2020/10/28 Javascript
[49:15]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第二场 1月19日
2021/03/11 DOTA
Python中的迭代器漫谈
2015/02/03 Python
Python装饰器的函数式编程详解
2015/02/27 Python
Python设计模式编程中Adapter适配器模式的使用实例
2016/03/02 Python
代码实例讲解python3的编码问题
2019/07/08 Python
Python 3 使用Pillow生成漂亮的分形树图片
2019/12/24 Python
在python中使用nohup命令说明
2020/04/16 Python
分享一个H5原生form表单的checkbox特效代码
2018/02/26 HTML / CSS
洛杉矶生活休闲而精致的基础品牌:Mika Jaymes
2018/01/07 全球购物
澳洲健康食品网上商店:Aussie Health Products
2018/06/15 全球购物
渗透攻击的测试步骤
2014/06/07 面试题
高中课前三分钟演讲稿
2014/09/13 职场文书
语文教师求职信范文
2015/03/20 职场文书
2015年个人工作总结报告
2015/04/25 职场文书
民间借贷借条范本
2015/05/25 职场文书
酒店宣传语大全
2015/07/13 职场文书
Java方法重载和方法重写的区别到底在哪?
2021/06/11 Java/Android
win11无法添加打印机怎么办? 提示windows无法打开添加打印机的解决办法
2022/04/05 数码科技