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 相关文章推荐
MySQL8.0.24版本Release Note的一些改进点
Apr 22 MySQL
教你解决往mysql数据库中存入汉字报错的方法
May 06 MySQL
MySQL sql_mode修改不生效的原因及解决
May 07 MySQL
mysql在项目中怎么选事务隔离级别
May 25 MySQL
MySQL如何使用使用Xtrabackup进行备份和恢复
Jun 21 MySQL
MySQL数据库必备之条件查询语句
Oct 15 MySQL
为什么MySQL 删除表数据 磁盘空间还一直被占用
Oct 16 MySQL
MySQL 服务和数据库管理
Nov 11 MySQL
MySQL中B树索引和B+树索引的区别详解
Mar 03 MySQL
Mysql外键约束的创建与删除的使用
Mar 03 MySQL
MySQL数据库查询进阶之多表查询详解
Apr 08 MySQL
MySQL详细讲解变量variables的用法
Jun 21 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
PHP4在Windows2000下的安装
2006/10/09 PHP
PHP针对常规模板引擎中与CSS/JSON冲突的解决方法
2014/08/19 PHP
PHP实现在线阅读PDF文件的方法
2015/06/23 PHP
PHP实现获取某个月份周次信息的方法
2015/08/11 PHP
如何实现浏览器上的右键菜单
2006/07/10 Javascript
JavaScript 继承的实现
2009/07/09 Javascript
JS实现根据出生年月计算年龄
2014/01/10 Javascript
让浏览器DOM元素最后加载的js方法
2014/07/29 Javascript
24款热门实用的jQuery插件推荐
2014/12/24 Javascript
jQuery中:hidden选择器用法实例
2014/12/30 Javascript
JS中的Replace方法使用经验分享
2015/05/20 Javascript
js 求时间差的实现代码
2016/04/26 Javascript
逻辑表达式中与或非的用法详解
2016/06/06 Javascript
angular ng-repeat数组中的数组实例
2017/02/18 Javascript
Bootstrap Table从零开始
2017/06/30 Javascript
使用Vuex实现一个笔记应用的方法
2018/03/13 Javascript
JavaScript实现多态和继承的封装操作示例
2018/08/20 Javascript
微信小程序实现折线图的示例代码
2019/06/07 Javascript
vue引入微信sdk 实现分享朋友圈获取地理位置功能
2019/07/04 Javascript
Vue-drag-resize 拖拽缩放插件的使用(简单示例)
2019/12/04 Javascript
python groupby 函数 as_index详解
2019/12/16 Python
TensorFlow Saver:保存和读取模型参数.ckpt实例
2020/02/10 Python
Python 实现向word(docx)中输出
2020/02/13 Python
Python ORM框架Peewee用法详解
2020/04/29 Python
纯css3实现照片墙效果
2014/12/26 HTML / CSS
Coach澳大利亚官方网站:美国著名时尚奢侈品牌
2017/05/24 全球购物
哈萨克斯坦移动和数字技术在线商店:SatelOnline.kz
2020/09/04 全球购物
如何查找和删除数据库中的重复数据
2014/11/05 面试题
大学生求职简历的自我评价范文
2013/10/12 职场文书
网络工程专业毕业生推荐信
2013/10/28 职场文书
业务员岗位职责范本
2013/12/15 职场文书
感恩节活动方案
2014/01/27 职场文书
计划生育工作汇报
2014/10/28 职场文书
教师节联欢会主持词
2015/07/04 职场文书
使用css样式设计一个简单的html登陆界面的实现
2021/03/30 HTML / CSS
z-index不起作用
2021/03/31 HTML / CSS