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 相关文章推荐
仅用一句SQL更新整张表的涨跌幅、涨跌率的解决方案
May 06 MySQL
MySQL kill不掉线程的原因
May 07 MySQL
MySQL Threads_running飙升与慢查询的相关问题解决
May 08 MySQL
MySQL的安装与配置详细教程
Jun 26 MySQL
MySQL修改默认引擎和字符集详情
Sep 25 MySQL
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
Dec 06 MySQL
weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法
Jan 22 MySQL
MySQ InnoDB和MyISAM存储引擎介绍
Apr 26 MySQL
mysql拆分字符串作为查询条件的示例代码
Jul 07 MySQL
MySQL分布式恢复进阶
Jul 23 MySQL
SQLServer常见数学函数梳理总结
Aug 05 MySQL
MySQL下载安装配置详细教程 附下载资源
Sep 23 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
Yii中使用PHPExcel导出Excel的方法
2014/12/26 PHP
PHP实现的迷你漂流瓶
2015/07/29 PHP
用js判断页面是否加载完成实现代码
2012/12/11 Javascript
JavaScript中的onerror事件概述及使用
2013/04/01 Javascript
选择器中含有空格在使用示例及注意事项
2013/07/31 Javascript
js冒泡法和数组转换成字符串示例代码
2013/08/14 Javascript
jQuery实现购物车多物品数量的加减+总价计算
2014/06/06 Javascript
jQuery事件绑定on()、bind()与delegate() 方法详解
2015/06/03 Javascript
JavaScript实现向右伸出的多级网页菜单效果
2015/08/25 Javascript
jQuery隐藏和显示效果实现
2016/04/06 Javascript
javascript 广告移动特效的实现代码
2016/06/25 Javascript
vue.js使用v-model指令实现的数据双向绑定功能示例
2018/05/22 Javascript
了解javascript中的Dom操作
2019/05/27 Javascript
解决Layui数据表格的宽高问题
2019/09/28 Javascript
Java Varargs 可变参数用法详解
2020/01/28 Javascript
写给新手同学的vuex快速上手指北小结
2020/04/14 Javascript
React冒泡和阻止冒泡的应用详解
2020/08/18 Javascript
[02:56]《DAC最前线》之国外战队抵达上海备战亚洲邀请赛
2015/01/28 DOTA
[41:05]Serenity vs Pain 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python日期操作学习笔记
2008/10/07 Python
Python序列操作之进阶篇
2016/12/08 Python
Python 实现数据结构中的的栈队列
2019/05/16 Python
django自带serializers序列化返回指定字段的方法
2019/08/21 Python
Django项目后台不挂断运行的方法
2019/08/31 Python
Python 中 -m 的典型用法、原理解析与发展演变
2019/11/11 Python
使用python计算三角形的斜边例子
2020/04/15 Python
详解python中groupby函数通俗易懂
2020/05/14 Python
python计算auc的方法
2020/09/09 Python
台湾三立电视电商平台:电电购
2019/09/09 全球购物
抽象类和接口的区别
2012/09/19 面试题
电子商务专员岗位职责
2013/12/11 职场文书
春节活动策划方案
2014/01/24 职场文书
产品销售计划书
2014/05/04 职场文书
董事长助理工作职责范本
2014/07/01 职场文书
2014年采购员工作总结
2014/11/18 职场文书
九大龙王魂骨,山龙王留下躯干骨,榜首死的最憋屈(被捏碎)
2022/03/18 国漫