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 8.0 之不可见列的基本操作
May 20 MySQL
MySQL 重命名表的操作方法及注意事项
May 21 MySQL
如何使用分区处理MySQL的亿级数据优化
Jun 18 MySQL
MySQL修改默认引擎和字符集详情
Sep 25 MySQL
Mysql关于数据库是否应该使用外键约束详解说明
Oct 24 MySQL
mysql5.7的安装及Navicate长久免费使用的实现过程
Nov 17 MySQL
Mysql中有关Datetime和Timestamp的使用总结
Dec 06 MySQL
SQL语法CONSTRAINT约束操作详情
Jan 18 MySQL
深入理解MySQL中MVCC与BufferPool缓存机制
May 25 MySQL
MySQL中JOIN连接的基本用法实例
Jun 05 MySQL
MySQL数据库查询之多表查询总结
Aug 05 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
咖啡豆的最常见发酵处理方法,详细了解一下
2021/03/03 冲泡冲煮
dedecms 制作模板中使用的全局标记图文教程
2007/03/11 PHP
浅谈php中curl、fsockopen的应用
2016/12/10 PHP
获取body标签的两种方法
2011/10/13 Javascript
Jquery实现图片左右自动滚动示例
2013/09/25 Javascript
弹出最简单的模式化遮罩层的js代码
2013/12/04 Javascript
jquery.post用法之type设置问题
2014/02/24 Javascript
JavaScript获取图片真实大小代码实例
2014/09/24 Javascript
JS中的Replace方法使用经验分享
2015/05/20 Javascript
jquery插件splitScren实现页面分屏切换模板特效
2015/06/16 Javascript
JavaScript+html5 canvas实现图片破碎重组动画特效
2016/02/22 Javascript
jQuery组件easyui基本布局实现代码
2016/08/25 Javascript
jquery datatable服务端分页
2016/08/31 Javascript
ES6扩展运算符的用途实例详解
2017/08/20 Javascript
NodeJs实现定时任务的示例代码
2017/12/05 NodeJs
解析vue data不可以使用箭头函数问题
2018/07/03 Javascript
我所理解的JavaScript中的this指向
2020/09/04 Javascript
[32:26]EG vs IG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
编写Python小程序来统计测试脚本的关键字
2016/03/12 Python
一个基于flask的web应用诞生(1)
2017/04/11 Python
利用Tkinter和matplotlib两种方式画饼状图的实例
2017/11/06 Python
Python获取命令实时输出-原样彩色输出并返回输出结果的示例
2019/07/11 Python
Python 3 使用Pillow生成漂亮的分形树图片
2019/12/24 Python
python随机生成大小写字母数字混合密码(仅20行代码)
2020/02/01 Python
浅谈pytorch池化maxpool2D注意事项
2020/02/18 Python
python操作微信自动发消息的实现(微信聊天机器人)
2020/07/14 Python
css3 响应式媒体查询的示例代码
2019/09/25 HTML / CSS
UGG雪地靴德国官网:UGG德国
2016/11/19 全球购物
美国女孩服装购物网站:Justice
2017/03/04 全球购物
印度网上药店:1mg
2017/10/13 全球购物
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
乌克兰鞋类购物网站:Eobuv.com.ua
2020/11/28 全球购物
2019年c语言经典面试题目
2016/08/17 面试题
初二物理教学反思
2014/01/29 职场文书
python opencv通过4坐标剪裁图片
2021/06/05 Python
python 使用pandas读取csv文件的方法
2022/12/24 Python