美文网首页
Mysql 使用中的一些坑(二)

Mysql 使用中的一些坑(二)

作者: chaunsin | 来源:发表于2020-09-02 19:02 被阅读0次

以下是本人使用中遇到的一些坑,会陆陆续续收集更新,主要目的是希望能帮助到有缘人了,文笔不高,大白话介绍手把手解决问题。如有问题或想法请指出,不胜感激!!!

3.在使用日期作为范围条件查找时数据缺失问题

先说下场景问题,比如我要查询2020年8月1号到8月10号的数据 表的数据结构以及数据如下

结构 数据

表结构很简单不复杂字段也不多,其中create_time字段是varchar类型的 time是datetime类型的 这点要注意!下面sql查询如下:

查询结果如下

what?查询的结果很是诡异,竟然不包括2020-08-01的数据怎么回事?有两点要提前说明一下,第一点是我现在目前查询的字段是create_time 是varchar类型的,另外一点,为什么我查询的条件中使用  2020-08-01 00:00:00 +0800 CST 的格式去查询,因为在写代码时传参传入的是时间类型,而不是字符串,踩到了坑所以才诞生此文章写下该问题。 仔细观察发现我查询的条件中时间是 2020-08-01 00:00:00 +0800 CST  格式的,而实际库中的是2020-08-01 难道是不匹配的缘故?于是我稍加修改查询如下结果如下:

查询结果

这回发现结果正常了8月1号的数据有了,但是为什么呢?原理呢?此处暂时不清楚还是挖个坑待补充。

以上是使用between的查询,可能你此时你会想到 >= <=的情况是什么样子的呢? 其实也是和上面一样的,以下简略概括如下:

错误的结果 正确的结果

ok上文已经演示了varchar类型作为时间用between 和 >= <=进行查找的问题,此时你可能又会想到datetime 或者timestamp 或者date查询是如何呢?下面演示datetime查询方式,此时我们要关注time字段类型,如下:

between结果一 between结果二

我们发现此时查询datetime 类型的time字段是没有问题的 结果二中的查询条件去掉了 时分秒时区查询也是没问题的。

以上是between的查询情况,下面同样在演示>= <=的查询情况

>=查询结果一 >=查询结果二

同样和between的结果是一样的。

到这本问题基本上演示完了,其中date 和timestamp的类型就不在演示了,有兴趣可自测一下。另外要说一点between的取值范围是包含条件值的 比如查找数据8号0点到10号0点的数据其中包含8号0点和10号0点的数据 sql代码 条件如下:

SELECT * FROM 表名 WHERE time BETWEEN '2020-08-01 00:00:00 +0800 CST' AND '2020-08-10 00:00:00 +0800 CST';

也等价于

SELECT * FROM 表名 WHERE  time >='2020-08-01 00:00:00 +0800 CST' AND time <='2020-08-10 00:00:00 +0800 CST'; 

用数学集合闭区间来表示如下:

[2020-08-01 00:00:00 +0800 CST,2020-08-10 00:00:00 +0800 CST]

相关链接

MySql使用中的一些坑(一)

未完待续。。。

相关文章

  • Mysql 使用中的一些坑(二)

    以下是本人使用中遇到的一些坑,会陆陆续续收集更新,主要目的是希望能帮助到有缘人了,文笔不高,大白话介绍手把手解决问...

  • Mysql 使用中的一些坑(一)

    以下是本人使用中遇到的一些坑,会陆陆续续收集更新,主要目的是希望能帮助到有缘人了,文笔不高,大白话介绍手把手解决问...

  • Navicat Premium中文乱码

    这个很坑,使用Mysql 用 Navicat for mysql 不乱码,

  • mysql的一些配置操作

    一、背景 记录使用mysql过程中遇到的问题,及一些配置 二、mysql配置 三、慢查询日志 1、命令行临时生效 ...

  • docker-mysql使用中的坑

    原文链接:https://blog.yexuejc.top/articles/2020/07/31/1596182...

  • MySQL 间隙锁

    间隙锁 间隙锁在MySQL中解决了幻读问题,在MySQL中通过RR也能解决幻读。 但是使用间隙锁时有两个坑需要注意...

  • BigData~09:Sqoop

    使用 Sqoop 把数据从 Hive 导出到 MySQL,中间遇到了一些坑,现总结如下: 一、报错总结 在 CDH...

  • Django使用空间数据的配置

    使用Django(2.2.10)+ MySQL(8.0)存储空间信息中遇到的坑,记录下。 配置 官方文档地理信息库...

  • MySQL安装配置

    安装 使用Homebrew 安装MySQL 在使用MySQL 前,需要进行一些配置。 使用 启动MySQL 服务 ...

  • k8s中将mysql运行在容器内

    将mysql镜像运行在k8s集群内,记录下踩坑过程。 mysql镜像 mysql镜像地址这里我使用的是mysql5...

网友评论

      本文标题:Mysql 使用中的一些坑(二)

      本文链接:https://www.haomeiwen.com/subject/bhbwsktx.html