mysql timestamp比较查询遇到的坑及解决


Posted in MySQL onNovember 27, 2021

timestamp比较查询遇到的坑

记得之前京东要求mysql建表的时候update_time 为timestamp,create_time为datetime。后来阿里的编码规范里要求两者都要是datetime类型的。

mysql timestamp比较查询遇到的坑及解决

对于timestamp和datetime的区别好多地方都有介绍。有时在想为什么京东会要求update_time必须timestamp呢?难道是因为占用的空间少点?还是只有timestamp才能设置默认值(on update current_timestamp)?默认值datetime不是也可以设置么。后来百度了下,才知道 datetime支持设置默认值是在5.7的时候才支持的。京东这么要求可能之前使用的mysql版本过低,同时要求update_time 能自动更新的缘故吧。

现在在一家公司也是这么要求的 ,update_time设置为timestamp。结果遇到坑了。一同事发现很奇怪的问题:为什么date比较查询没有结果,而把日志里面打印的sql直接执行却能查询到结果??为什么会出现这种不一致的情况,我之前也没遇到过。解决问题嘛,总是让人兴奋的。

mysql timestamp比较查询遇到的坑及解决

自己在本地试了下,确实是这样的,打印的日志没有问题,而正是日志‘迷惑'了我们,让人觉得很奇怪。看了下比较的字段 是 update_time, 正是timestamp类型的。经过阿里规范熏陶过,敏锐的觉得应该是类型的问题。所以自己百度了下发现是时区的问题。在数据库连接url后面加上serverTimezone=GMT%2B8 参数就行了。当然另一种方式就用datetime,这样能避免很多坑。

为什么会出现这样的问题?是因为应用服务器和mysql部署的服务器时区不一致导致的。这就是为什么我们看到的打印日志没有问题,但是却查询不到结果的原因(日志中看到的时间是本机的时区,但是当数据传输到mysql服务器时,是另一个时区的时间)

mysql 的date 也有这个问题。。。

timestamp查询范围问题

MySQL中timestamp类型日期,比如更新时间是2020-05-26,查询是时 update_time <= 2020-05-26,是查询不到的,需要转为 DATE_FORMAT(info.up_time,'%Y-%m-%d') <= '2020-05-26',具体原因不明,需要深入研究。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

MySQL 相关文章推荐
MySQL 数据类型选择原则
May 27 MySQL
MySQL 8.0 Online DDL快速加列的相关总结
Jun 02 MySQL
MYSQL 无法识别中文的永久解决方法
Jun 03 MySQL
SQL实现LeetCode(196.删除重复邮箱)
Aug 07 MySQL
MySQL之select、distinct、limit的使用
Nov 11 MySQL
mysql 联合索引生效的条件及索引失效的条件
Nov 20 MySQL
如何创建一个创建MySQL数据库中的datetime类型
Mar 21 MySQL
MySQL创建管理KEY分区
Apr 13 MySQL
MySQL去除密码登录告警的方法
Apr 20 MySQL
mysql性能优化以及配置连接参数设置
May 06 MySQL
MySQL新手入门进阶语句汇总
Sep 23 MySQL
Mysql如何查看是否使用到索引
Dec 24 MySQL
分享mysql的current_timestamp小坑及解决
Nov 27 #MySQL
MySQL中CURRENT_TIMESTAMP的使用方式
Nov 27 #MySQL
MySQL Innodb索引机制详细介绍
Nov 23 #MySQL
浅谈mysql哪些情况会导致索引失效
Nov 20 #MySQL
MySQL数据库索引的最左匹配原则
Nov 20 #MySQL
mysql 联合索引生效的条件及索引失效的条件
Nov 20 #MySQL
MySQL利用UNION连接2个查询排序失效详解
Nov 20 #MySQL
You might like
php str_pad() 将字符串填充成指定长度的字符串
2010/02/23 PHP
ThinkPHP 表单自动验证运用示例
2014/10/13 PHP
Laravel日志用法详解
2016/10/09 PHP
PHP基于SPL实现的迭代器模式示例
2018/04/22 PHP
Javascript与flash交互通信基础教程
2008/08/07 Javascript
JavaScript Distilled 基础知识与函数
2010/04/07 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
关注jquery技巧提高jquery技能(前端开发必学)
2015/11/02 Javascript
原生js和jquery分别实现横向导航菜单效果
2016/05/13 Javascript
canvas基础绘制-绚丽倒计时的实例
2017/09/17 Javascript
jquery实现点击a链接,跳转之后,该a链接处显示背景色的方法
2018/01/18 jQuery
webpack3里使用uglifyjs压缩js时打包报错的解决
2018/12/13 Javascript
jQuery实现的别踩白块小游戏完整示例
2019/01/07 jQuery
js+HTML5 canvas 实现简单的加载条(进度条)功能示例
2019/07/16 Javascript
详解mpvue实现对苹果X安全区域的适配
2019/07/31 Javascript
VSCode 添加自定义注释的方法(附带红色警戒经典注释风格)
2020/08/27 Javascript
vue实现简单的登录弹出框
2020/10/26 Javascript
[02:54]辉夜杯主赛事第二日败者组 iG.V赛后采访
2015/12/26 DOTA
Python strip lstrip rstrip使用方法
2008/09/06 Python
Python创建日历实例
2014/08/21 Python
利用Python的Django框架中的ORM建立查询API
2015/04/20 Python
Python中字符串格式化str.format的详细介绍
2017/02/17 Python
基于Python中求和函数sum的用法详解
2018/06/28 Python
Python实现朴素贝叶斯的学习与分类过程解析
2019/08/24 Python
python-tornado的接口用swagger进行包装的实例
2019/08/29 Python
Python3 pandas 操作列表实例详解
2019/09/23 Python
给你一面国旗 教你用python画中国国旗
2019/09/24 Python
Python内置函数property()如何使用
2020/09/01 Python
Html5新特性用canvas标签画多条直线附效果截图
2014/06/30 HTML / CSS
Halston Heritage官网:简洁的日装,稍显奢华的晚装
2018/11/20 全球购物
介绍一下Cookie和Session及他们之间的区别
2012/11/20 面试题
绝对经典成功的大学生推荐信
2013/11/08 职场文书
初中英语教学随笔
2015/08/15 职场文书
基于Python绘制子图及子图刻度的变换等的问题
2021/05/23 Python
图神经网络GNN算法
2022/05/11 Python
Spring Boot优化后启动速度快到飞起技巧示例
2022/07/23 Java/Android