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性能压力基准测试工具sysbench的使用简介
Apr 21 MySQL
Mysql基础知识点汇总
May 26 MySQL
MySql开发之自动同步表结构
May 28 MySQL
MySQL 四种连接和多表查询详解
Jul 16 MySQL
SQL语法CONSTRAINT约束操作详情
Jan 18 MySQL
MySQL优化及索引解析
Mar 17 MySQL
Linux系统下MySQL配置主从分离的步骤
Mar 21 MySQL
MySQL分区以及建索引的方法总结
Apr 13 MySQL
mysql数据库实现设置字段长度
Jun 10 MySQL
分享很少见很有用的SQL功能CORRESPONDING
Aug 05 MySQL
MySql按时,天,周,月进行数据统计
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
有关phpmailer的详细介绍及使用方法
2013/01/28 PHP
php防止SQL注入详解及防范
2013/11/12 PHP
使用YUI+Ant 实现JS CSS压缩
2014/09/02 PHP
php简单实现MVC
2015/02/05 PHP
php简单实现文件或图片强制下载的方法
2016/12/06 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
JQuery自适应IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
2011/03/28 Javascript
jQuery的Ajax的自动完成功能控件简要说明
2013/02/22 Javascript
Javascript 浮点运算的问题分析与解决方法
2013/08/27 Javascript
JavaScript对内存分配及管理机制详细解析
2013/11/11 Javascript
从数组中随机取x条不重复数据的JS代码
2013/12/24 Javascript
IE6/IE7中JavaScript json提示缺少标识符、字符串或数字问题处理
2014/12/16 Javascript
jQuery实现动态添加和删除一个div
2015/08/12 Javascript
日常收集整理的JavaScript常用函数方法
2015/12/10 Javascript
Bootstrap实现圆角、圆形头像和响应式图片
2016/12/14 Javascript
AngularJS中update两次出现$promise属性无法识别的解决方法
2017/01/05 Javascript
Bootstrap实现可折叠分组侧边导航菜单
2018/03/07 Javascript
Vue封装一个简单轻量的上传文件组件的示例
2018/03/21 Javascript
Nuxt v-bind绑定img src不显示的解决
2019/12/05 Javascript
javascript实现计算器功能
2020/03/30 Javascript
javascript实现滚轮轮播图片
2020/12/13 Javascript
vue-quill-editor插入图片路径太长问题解决方法
2021/01/08 Vue.js
Python使用htpasswd实现基本认证授权的例子
2014/06/10 Python
详解python脚本自动生成需要文件实例代码
2017/02/04 Python
老生常谈Python基础之字符编码
2017/06/14 Python
Python Tkinter模块实现时钟功能应用示例
2018/07/23 Python
PyCharm2018 安装及破解方法实现步骤
2019/09/09 Python
Python常用模块os.path之文件及路径操作方法
2019/12/03 Python
匡威德国官网:Converse德国
2019/01/26 全球购物
财会自我鉴定范文
2013/12/27 职场文书
技术总监管理岗位职责
2014/03/09 职场文书
优秀护士演讲稿
2014/04/30 职场文书
争先创优演讲稿
2014/09/15 职场文书
工程项目合作意向书
2015/05/08 职场文书
多人股份制合作协议书
2016/03/19 职场文书
js前端面试常见浏览器缓存强缓存及协商缓存实例
2022/06/21 Javascript