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 相关文章推荐
Idea连接MySQL数据库出现中文乱码的问题
Apr 14 MySQL
MySQL 聚合函数排序
Jul 16 MySQL
记一次Mysql不走日期字段索引的原因小结
Oct 24 MySQL
mysql5.6主从搭建以及不同步问题详解
Dec 04 MySQL
SQL基础查询和LINQ集成化查询
Jan 18 MySQL
一次SQL如何查重及去重的实战记录
Mar 13 MySQL
Mysql事务索引知识汇总
Mar 17 MySQL
MySQL创建管理KEY分区
Apr 13 MySQL
提高系统的吞吐量解决数据库重复写入问题
Apr 23 MySQL
mysql数据库隔离级别详解
Jun 16 MySQL
MySQL性能指标TPS+QPS+IOPS压测
Aug 05 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/07/17 PHP
用PHP即时捕捉PHP中的错误并发送email通知的实现代码
2013/01/19 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
2020/08/24 PHP
js跨域问题浅析及解决方法优缺点对比
2014/11/08 Javascript
js实现的光标位置工具函数示例
2016/10/03 Javascript
Angular中的$watch方法详解
2017/09/18 Javascript
JS运动特效之同时运动实现方法分析
2018/01/24 Javascript
js构造函数constructor和原型prototype原理与用法实例分析
2020/03/02 Javascript
Nodejs + sequelize 实现增删改查操作
2020/11/07 NodeJs
[02:57]2014DOTA2国际邀请赛 选手辛苦解说更辛苦
2014/07/10 DOTA
[06:16]《DAC最前线》之地区预选赛全面回顾
2015/01/19 DOTA
[01:12:27]EG vs Secret 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
[59:53]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第二场 3月6日
2021/03/11 DOTA
Python中if __name__ == '__main__'作用解析
2015/06/29 Python
Python编程之event对象的用法实例分析
2017/03/23 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
2017/12/14 Python
Python matplotlib画图实例之绘制拥有彩条的图表
2017/12/28 Python
Python从零开始创建区块链
2018/03/06 Python
python使用scrapy发送post请求的坑
2018/09/04 Python
Python3 利用requests 库进行post携带账号密码请求数据的方法
2018/10/26 Python
Python中shapefile转换geojson的示例
2019/01/03 Python
Python实现字符串匹配的KMP算法
2019/04/04 Python
pyqt5 实现工具栏文字图片同时显示
2019/06/13 Python
在Python中使用filter去除列表中值为假及空字符串的例子
2019/11/18 Python
Python动态声明变量赋值代码实例
2019/12/30 Python
推荐8款常用的Python GUI图形界面开发框架
2020/02/23 Python
Pandas的数据过滤实现
2021/01/15 Python
香港最大的洋酒零售连锁店:屈臣氏酒窖(Watson’s Wine)
2018/12/10 全球购物
精灵市场:Pixie Market
2019/06/18 全球购物
利用指针变量实现队列的入队操作
2012/04/07 面试题
机关作风整顿个人整改措施思想汇报
2014/09/29 职场文书
教师培训学习心得体会
2016/01/21 职场文书
环境保护宣传标语大全!
2019/06/28 职场文书
你会写报告?产品体验报告到底该怎么写?
2019/08/14 职场文书
muduo TcpServer模块源码分析
2022/04/26 Redis
服务器SVN搭建图文安装过程
2022/06/21 Servers