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 如何实现多张无关联表查询数据并分页
Jun 05 MySQL
为什么MySQL分页用limit会越来越慢
Jul 25 MySQL
Node-Red实现MySQL数据库连接的方法
Aug 07 MySQL
面试中老生常谈的MySQL问答集锦夯实基础
Mar 13 MySQL
MySQL如何快速创建800w条测试数据表
Mar 17 MySQL
CentOS MySql8 远程连接实战
Apr 19 MySQL
MySQL 数据表操作
May 04 MySQL
MySQL数据库Innodb 引擎实现mvcc锁
May 06 MySQL
MYSQL事务的隔离级别与MVCC
May 25 MySQL
MySQL 原理与优化之Update 优化
Aug 14 MySQL
MySQL使用IF语句及用case语句对条件并结果进行判断 
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
CodeIgniter配置之autoload.php自动加载用法分析
2016/01/20 PHP
JavaScript中关于indexOf的使用方法与问题小结
2010/08/05 Javascript
JS字符串拼接在ie中都报错的解决方法
2014/03/27 Javascript
js获取IP地址的方法小结
2014/07/01 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
2015/04/17 Javascript
Angularjs中UI Router全攻略
2016/01/29 Javascript
JavaScript记录光标在编辑器中位置的实现方法
2016/04/22 Javascript
javascript弹出带文字信息的提示框效果
2016/07/19 Javascript
JS实现放大、缩小及拖拽图片的方法【可兼容IE、火狐】
2016/08/23 Javascript
Nodejs 发送Post请求功能(发短信验证码例子)
2017/02/09 NodeJs
Vue中添加手机验证码组件功能操作方法
2017/12/07 Javascript
微信小程序实现导航栏选项卡效果
2020/06/19 Javascript
Vue2.0点击切换类名改变样式的方法
2018/08/22 Javascript
微信小程序bindinput与bindsubmit的区别实例分析
2019/04/17 Javascript
[01:04]DOTA2上海特锦赛现场采访 FreeAgain遭众解说围攻
2016/03/25 DOTA
常见python正则用法的简单实例
2016/06/21 Python
Python冒泡排序注意要点实例详解
2016/09/09 Python
python使用str &amp; repr转换字符串
2016/10/13 Python
浅谈function(函数)中的动态参数
2017/04/30 Python
python实现微信发送邮件关闭电脑功能
2018/02/22 Python
Python Unittest自动化单元测试框架详解
2018/04/04 Python
对pandas进行数据预处理的实例讲解
2018/04/20 Python
Tensorflow 实现修改张量特定元素的值方法
2018/07/30 Python
使用11行Python代码盗取了室友的U盘内容
2018/10/23 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
pycharm编写spark程序,导入pyspark包的3中实现方法
2019/08/02 Python
Python自动化导出zabbix数据并发邮件脚本
2019/08/16 Python
python excel转换csv代码实例
2019/08/26 Python
基于Django统计博客文章阅读量
2019/10/29 Python
英国领先的在线鱼贩:The Fish Society
2020/08/12 全球购物
校园报刊亭的创业计划书
2014/01/02 职场文书
公司中秋节活动方案
2014/02/12 职场文书
竞选演讲稿范文大全
2014/05/12 职场文书
授权委托书(法人单位用)
2014/09/29 职场文书
地下停车场租赁协议范本
2014/10/07 职场文书
Python图片检索之以图搜图
2021/05/31 Python