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 Show Profile
Apr 05 MySQL
MySQL COUNT函数的使用与优化
May 10 MySQL
MySQL 使用事件(Events)完成计划任务
May 24 MySQL
MySQL5.7并行复制原理及实现
Jun 03 MySQL
MySQL连表查询分组去重的实现示例
Jul 01 MySQL
MySQL的Query Cache图文详解
Jul 01 MySQL
mysql主从复制的实现步骤
Oct 24 MySQL
一篇文章看懂MySQL主从复制与读写分离
Nov 07 MySQL
浅谈MySql update会锁定哪些范围的数据
Jun 25 MySQL
mysql拆分字符串作为查询条件的示例代码
Jul 07 MySQL
mysql查看表结构的三种方法总结
Jul 07 MySQL
MySQL索引失效十种场景与优化方案
May 08 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
一个oracle+PHP的查询的例子
2006/10/09 PHP
php文件缓存类汇总
2014/11/21 PHP
php根据某字段对多维数组进行排序的方法
2015/03/07 PHP
php自定义函数实现JS的escape的方法示例
2016/07/07 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
2020/08/26 PHP
深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解
2013/05/08 Javascript
Jquery图片延迟加载插件jquery.lazyload.js的使用方法
2014/05/21 Javascript
JavaScript定时器和优化的取消定时器方法
2015/07/03 Javascript
JavaScript中调用函数的4种方式代码实例
2015/07/08 Javascript
详解Javascript继承的实现
2016/03/25 Javascript
原生js编写autoComplete插件
2016/04/13 Javascript
微信小程序 progress组件详解及实例代码
2016/10/25 Javascript
详解浏览器渲染页面过程
2017/02/09 Javascript
详解Angular CLI + Electron 开发环境搭建
2017/07/20 Javascript
vue使用drag与drop实现拖拽的示例代码
2017/09/07 Javascript
vue实现后台管理权限系统及顶栏三级菜单显示功能
2019/06/19 Javascript
微信小程序工具函数封装
2019/10/28 Javascript
[27:53]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS iG
2014/05/26 DOTA
Python中Iterator迭代器的使用杂谈
2016/06/20 Python
python将类似json的数据存储到MySQL中的实例
2019/07/12 Python
python opencv 简单阈值算法的实现
2019/08/04 Python
Pandas实现DataFrame按行求百分数(比例数)
2019/12/27 Python
python脚本监控logstash进程并邮件告警实例
2020/04/28 Python
python线性插值解析
2020/07/05 Python
python绘图模块之利用turtle画图
2021/02/12 Python
爱尔兰领先的在线体育用品零售商:theGAAstore
2018/04/16 全球购物
台湾租车首选品牌:IWS艾维士租车
2019/05/03 全球购物
加拿大拼图大师:Puzzle Master
2020/12/28 全球购物
商场端午节活动方案
2014/01/29 职场文书
安全生产实施方案
2014/02/23 职场文书
经营目标管理责任书
2014/07/25 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
运动会运动员赞词
2015/07/22 职场文书
Django cookie和session的应用场景及如何使用
2021/04/29 Python
Mysql binlog日志文件过大的解决
2021/10/05 MySQL