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 pt-slave-restart工具的使用简介
Apr 07 MySQL
浅谈mysql执行过程以及顺序
May 12 MySQL
MYSQL数据库使用UTF-8中文编码乱码的解决办法
May 26 MySQL
MySQL库表名大小写的选择
Jun 05 MySQL
MySql 缓存查询原理与缓存监控和索引监控介绍
Jul 02 MySQL
mysql 索引合并的使用
Aug 30 MySQL
一条慢SQL语句引发的改造之路
Mar 16 MySQL
分享MySQL常用 内核 Debug 几种常见方法
Mar 17 MySQL
Mysql索引失效 数据库表中有索引还是查询很慢
May 15 MySQL
mysql 排序失效
May 20 MySQL
mysql sock 文件解析及作用讲解
Jul 15 MySQL
MySQL中LAG()函数和LEAD()函数的使用
Aug 14 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
浅析php数据类型转换
2014/01/09 PHP
php限制ip地址范围的方法
2015/03/31 PHP
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
2017/05/17 PHP
JS 实现Json查询的方法实例
2013/04/12 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
2014/05/05 Javascript
jquery显示隐藏input对象
2014/07/21 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
jquery获取复选框checkbox的值的简单实现方法
2016/05/26 Javascript
简单了解JavaScript操作XPath的一些基本方法
2016/06/03 Javascript
用JS中split方法实现彩色文字背景效果实例
2016/08/24 Javascript
jQuery.validate.js表单验证插件的使用代码详解
2018/10/22 jQuery
jquery validate 实现动态增加/删除验证规则操作示例
2019/10/28 jQuery
wxPython学习之主框架实例
2014/09/28 Python
Python多线程、异步+多进程爬虫实现代码
2016/02/17 Python
Python 对输入的数字进行排序的方法
2018/06/23 Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
2019/06/26 Python
Python为何不能用可变对象作为默认参数的值
2019/07/01 Python
Python中函数的返回值示例浅析
2019/08/28 Python
python中必要的名词解释
2019/11/20 Python
Python遍历字典方式就实例详解
2019/12/28 Python
matplotlib教程——强大的python作图工具库
2020/10/15 Python
python爬虫利用代理池更换IP的方法步骤
2021/02/21 Python
Spartoo英国:欧洲最大的网上鞋店
2016/09/13 全球购物
Notino瑞典:购买香水和美容产品
2019/07/26 全球购物
为什么要有struct关键字
2012/05/08 面试题
CSS实现fullpage.js全屏滚动效果的示例代码
2021/03/24 HTML / CSS
党课学习思想汇报
2014/01/02 职场文书
四议两公开实施方案
2014/03/28 职场文书
美容院店长岗位职责
2014/04/08 职场文书
我的老师教学反思
2014/05/01 职场文书
原料仓仓管员岗位职责
2014/07/08 职场文书
“四风”问题的主要表现和危害思想汇报
2014/09/19 职场文书
公安局负责人查摆问题及整改方案
2014/09/27 职场文书
男方婚礼答谢词
2015/01/20 职场文书
总经理岗位职责
2015/02/04 职场文书
篮球拉拉队口号
2015/12/25 职场文书