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之DML语言
Apr 05 MySQL
将图片保存到mysql数据库并展示在前端页面的实现代码
May 02 MySQL
MySQL开启事务的方式
Jun 26 MySQL
低版本Druid连接池+MySQL驱动8.0导致线程阻塞、性能受限
Jul 01 MySQL
MySQL 服务和数据库管理
Nov 11 MySQL
MySQL利用UNION连接2个查询排序失效详解
Nov 20 MySQL
mysql聚集索引、辅助索引、覆盖索引、联合索引的使用
Feb 12 MySQL
详细聊一聊mysql的树形结构存储以及查询
Apr 05 MySQL
深入理解mysql事务隔离级别和存储引擎
Apr 12 MySQL
SQL语句多表联合查询的方法示例
Apr 18 MySQL
SQLyog的下载、安装、破解、配置教程(MySQL可视化工具安装)
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
PHP HTML代码串 截取实现代码
2009/06/29 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
2013/06/20 PHP
ASP.NET jQuery 实例18 通过使用jQuery validation插件校验DropDownList
2012/02/03 Javascript
转义字符(\)对JavaScript中JSON.parse的影响概述
2013/07/17 Javascript
JSON序列化与解析原生JS方法且IE6和chrome测试通过
2013/09/05 Javascript
JS使用for循环遍历Table的所有单元格内容
2014/08/21 Javascript
js和jquery中循环的退出和继续学习记录
2014/09/06 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
2015/11/24 Javascript
基于jquery插件编写countdown计时器
2016/06/12 Javascript
jquery实现垂直和水平菜单导航栏
2020/08/27 Javascript
js 判断各种数据类型的简单方法(推荐)
2016/08/29 Javascript
jQuery为DOM动态追加事件的方法
2017/02/16 Javascript
JS简单获取当前日期和农历日期的方法
2017/04/17 Javascript
JS实现动态添加DOM节点和事件的方法示例
2017/04/28 Javascript
SeaJS中use函数用法实例分析
2017/10/10 Javascript
vue实现行列转换的一种方法
2019/08/06 Javascript
ES6基础之数组和对象的拓展实例详解
2019/08/22 Javascript
js基础之事件捕获与冒泡原理
2019/10/09 Javascript
vue实现整屏滚动切换
2020/06/29 Javascript
v-slot和slot、slot-scope之间相互替换实例
2020/09/04 Javascript
Python中isnumeric()方法的使用简介
2015/05/19 Python
Python使用ftplib实现简易FTP客户端的方法
2015/06/03 Python
Python中特殊函数集锦
2015/07/27 Python
Python使用Mechanize模块编写爬虫的要点解析
2016/03/31 Python
Python使用pylab库实现画线功能的方法详解
2017/06/08 Python
matplotlib设置legend图例代码示例
2017/12/19 Python
Python批量生成特定尺寸图片及图画任意文字的实例
2019/01/30 Python
雅诗兰黛澳大利亚官网:Estée Lauder澳大利亚
2019/05/31 全球购物
餐饮加盟计划书
2014/01/10 职场文书
关于母亲节的感言
2014/02/04 职场文书
中文专业毕业生自荐信
2014/05/24 职场文书
文明社区申报材料
2014/08/21 职场文书
2015年领导班子工作总结
2015/05/23 职场文书
运动会通讯稿50字
2015/07/20 职场文书
闭幕词的写作格式与范文!
2019/06/24 职场文书
Python 中的单分派泛函数你真的了解吗
2021/06/22 Python