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令人咋舌的隐式转换
Apr 05 MySQL
MySQL索引篇之千万级数据实战测试
Apr 05 MySQL
仅用一句SQL更新整张表的涨跌幅、涨跌率的解决方案
May 06 MySQL
详解Mysql和Oracle之间的误区
May 18 MySQL
MySQL如何使用使用Xtrabackup进行备份和恢复
Jun 21 MySQL
MySQL连接控制插件介绍
Sep 25 MySQL
MySQL数据库超时设置配置的方法实例
Oct 15 MySQL
SQL语句多表联合查询的方法示例
Apr 18 MySQL
解决MySQL报“too many connections“错误
Apr 19 MySQL
mysql数据库实现设置字段长度
Jun 10 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初学者头疼问题总结
2006/07/08 PHP
在apache下限制每个虚拟主机的并发数!!!!
2006/10/09 PHP
js下函数般调用正则的方法附代码
2008/06/22 PHP
phpmailer中文乱码问题的解决方法
2014/04/22 PHP
ThinkPHP上使用多说评论插件的方法
2014/10/31 PHP
PHP写日志的实现方法
2014/11/05 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
2021/02/22 PHP
Javascript 修改String 对象 增加去除空格功能(示例代码)
2013/11/30 Javascript
Javascript中常见的校验如域名、手机、邮箱等等
2014/01/02 Javascript
node.js中的fs.lchmodSync方法使用说明
2014/12/16 Javascript
self.attachevent is not a function的解决方法
2017/04/04 Javascript
vue 巧用过渡效果(小结)
2018/09/22 Javascript
p5.js实现简单货车运动动画
2019/10/23 Javascript
js实现鼠标拖拽div左右滑动
2020/01/15 Javascript
Vue实现简单计算器案例
2020/02/25 Javascript
Python socket C/S结构的聊天室应用实现
2014/11/30 Python
Python创建系统目录的方法
2015/03/11 Python
python自动格式化json文件的方法
2015/03/11 Python
带你认识Django
2019/01/15 Python
Python collections模块使用方法详解
2019/08/28 Python
Django文件上传与下载(FileFlid)
2019/10/06 Python
Python内置加密模块用法解析
2019/11/25 Python
Python如何使用bokeh包和geojson数据绘制地图
2020/03/21 Python
Pytorch高阶OP操作where,gather原理
2020/04/30 Python
新手常见Python错误及异常解决处理方案
2020/06/18 Python
CSS3制作日历实现代码
2012/01/21 HTML / CSS
一份Java笔试题
2012/02/21 面试题
教师申诉制度
2014/01/29 职场文书
珍惜时间演讲稿
2014/05/14 职场文书
学校师德师风自我剖析材料
2014/09/29 职场文书
2015年度员工自我评价范文
2015/03/11 职场文书
土木工程毕业答辩开场白
2015/05/29 职场文书
2016中秋节问候语
2015/11/11 职场文书
关于考试抄袭的检讨书
2019/11/02 职场文书
导游词之澳门玫瑰圣母堂
2019/12/03 职场文书
高并发下Redis如何保持数据一致性(避免读后写)
2022/03/18 Redis