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 如何设计统计数据表
Jun 15 MySQL
分析mysql中一条SQL查询语句是如何执行的
Jun 21 MySQL
mysql定时自动备份数据库的方法步骤
Jul 07 MySQL
mysql配置SSL证书登录的实现
Sep 04 MySQL
一次MySQL启动导致的事故实战记录
Sep 15 MySQL
浅谈MySQL表空间回收的正确姿势
Oct 05 MySQL
mysql如何能有效防止删库跑路
Oct 05 MySQL
mysql主从复制的实现步骤
Oct 24 MySQL
解决Mysql报错 Table 'mysql.user' doesn't exist
May 06 MySQL
mysql数据库实现设置字段长度
Jun 10 MySQL
MySQL示例讲解数据库约束以及表的设计
Jun 16 MySQL
MySQL存储过程及语法详解
Aug 05 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
默默简单的写了一个模板引擎
2007/01/02 PHP
详解PHP的Yii框架中扩展的安装与使用
2016/04/01 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
PHP下用Swoole实现Actor并发模型的方法
2019/06/12 PHP
浅谈laravel-admin的sortable和orderby使用问题
2019/10/03 PHP
获取body标签的两种方法
2011/10/13 Javascript
jquery特效 幻灯片效果示例代码
2013/07/16 Javascript
编写高效jQuery代码的4个原则和5个技巧
2014/04/24 Javascript
javascript中定义类的方法汇总
2014/12/28 Javascript
省市联动效果的简单实现代码(推荐)
2016/06/06 Javascript
AngularJs基本特性解析(一)
2016/07/21 Javascript
Javascript 实现放大镜效果实例详解
2016/12/03 Javascript
JavaScript生成简单等差数列
2017/11/28 Javascript
vue-自定义组件传值的实例讲解
2018/09/18 Javascript
浅谈Vue的响应式原理
2019/05/30 Javascript
Angular.JS读取数据库数据调用完整实例
2019/07/02 Javascript
mpvue实现左侧导航与右侧内容的联动
2019/10/21 Javascript
vue element自定义表单验证请求后端接口验证
2019/12/11 Javascript
js实现简单的贪吃蛇游戏
2020/04/23 Javascript
Vue filter 过滤器、以及在table中的使用介绍
2020/09/07 Javascript
[02:32]“虐狗”镜头慎点 2016国际邀请赛中国区预选赛现场玩家采访
2016/06/28 DOTA
请不要重复犯我在学习Python和Linux系统上的错误
2016/12/12 Python
转换科学计数法的数值字符串为decimal类型的方法
2018/07/16 Python
对python捕获ctrl+c手工中断程序的两种方法详解
2018/12/26 Python
python实现按关键字筛选日志文件
2019/12/24 Python
Bata印度官网:源自欧洲舒适鞋履品牌
2020/01/30 全球购物
西班牙鞋子和箱包在线销售网站:zapatos.es
2020/02/17 全球购物
文科毕业生自荐书范文
2014/04/17 职场文书
社区好人好事材料
2014/12/26 职场文书
环卫处个人工作总结
2015/03/04 职场文书
校园之声广播稿
2015/08/18 职场文书
2016国培学习心得体会
2016/01/08 职场文书
PHP控制循环操作的时间
2021/04/01 PHP
React forwardRef的使用方法及注意点
2021/06/13 Javascript
Java实现带图形界面的聊天程序
2022/06/10 Java/Android
Apache Kafka 分区重分配的实现原理解析
2022/07/15 Servers