mysql timestamp比较查询
这篇文章主要介绍了mysql timestamp比较查询遇到的坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教 |
timestamp比较查询遇到的坑
记得之前京东要求mysql建表的时候update_time 为timestamp,create_time为datetime。后来阿里的编码规范里要求两者都要是datetime类型的。
对于timestamp和datetime的区别好多地方都有介绍。有时在想为什么京东会要求update_time必须timestamp呢?难道是因为占用的空间少点?还是只有timestamp才能设置默认值(on update current_timestamp)?默认值datetime不是也可以设置么。后来百度了下,才知道 datetime支持设置默认值是在5.7的时候才支持的。京东这么要求可能之前使用的mysql版本过低,同时要求update_time 能自动更新的缘故吧。
现在在一家公司也是这么要求的 ,update_time设置为timestamp。结果遇到坑了。一同事发现很奇怪的问题:为什么date比较查询没有结果,而把日志里面打印的sql直接执行却能查询到结果??为什么会出现这种不一致的情况,我之前也没遇到过。解决问题嘛,总是让人兴奋的。
自己在本地试了下,确实是这样的,打印的日志没有问题,而正是日志‘迷惑'了我们,让人觉得很奇怪。看了下比较的字段 是 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 timestamp比较查询相关推荐
- MySQL数据库时间类型datetime、bigint、timestamp的查询效率比较
以下文章来源方志朋的博客,回复"666"获面试宝典 来源:https://juejin.im/post/6844903701094596615 数据库中可以用datetime.bi ...
- 我脸都问绿了!二面竟然被问到 MySQL 时间类型 datetime、bigint 及 timestamp 的查询效率。。。
" 数据库中可以用datetime.bigint.timestamp来表示时间,那么选择什么类型来存储时间比较合适呢? 前期数据准备 通过程序往数据库插入50w数据 数据表: CREATE ...
- datetime mysql 查询_mysql数据库时间类型datetime、bigint、timestamp的查询效率比较
数据库中可以用datetime.bigint.timestamp来表示时间,那么选择什么类型来存储时间比较合适呢? 前期数据准备 通过程序往数据库插入50w数据 数据表: CREATE TABLE ` ...
- mysql开启慢查询日志
应用背景: MySQL慢查询日志功能默认是关闭的,通过开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,再通过分析定位问题瓶颈,优化查询提高数据库系统的性能. 测试环境: centos7. ...
- mysql的模糊查询以及时间类型整理
最近项目需求做模糊查询,大家也都知道,模糊查询是挺简单的,但难的是如何提升效率,,,当然在此咱们不说其他高深的,只针对mysql的模糊查询 1.mysql中除了like模糊查询,还有另一种模糊查询,F ...
- mysql之慢查询详解,mysqldumpslow的使用
简言 1. mysql中的慢查询是我们分析问题,定位问题的利器,巧妙使用可以快速解决问题 2. 原理:运行时间超过 long_query_time 的sql语句会被写入到慢查询日志文件中或者mysql ...
- 跨mysql和mongodb查询工具_MySQL与MongoDB查询互转
Mysql与MongoDB查询互转 mongo查询严格要求数据格式! 1.只想查出某些数据,不想全部数据都查出来 mysql:select name from user; mongo: db.user ...
- mysql 按日期查询
在mysql中,比如你的表的时间字段是column2,并且column2的类型是timestamp 单日查询: select * from TableName where column1='xxxx' ...
- mysql打开慢查询_MySQL 开启慢查询日志的方法
1.1 简介 开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能. 1.2 登录数据库查看 [root@localhost lib]# ...
最新文章
- tree树的展示,check树的展示,json数据转zree树格式数据
- 模拟操作系统动态内存管理(c实现)
- 关于编码ansi、GB2312、unicode与utf-8的区别
- w5100 网上资料整理
- android开发屏幕横放,android-即使从横向旋转到垂直,细节片段也会...
- 微信小程序商城,微信小程序微店,长期维护版本
- Redis常用API-使用文档
- 常见的几种索引扫描类型
- 字符串类型日期时间转换为Date类型解析转换异常java.text.ParseException: Unparseable date: “2019-09-27T18:31:31+08:00”
- 主机mysql密码修改_mysql密码修改方法_配置root密码_mysql 改数据库名_mysql忘记密码...
- 怎样用命令查看Mysql数据库大小?
- 写bat脚本--2021年5月18日
- 多路复用器_多路复用、非阻塞、线程与协程
- 研究云计算与大数据分析处理领域建议看的学术论文列表
- Katalon Recorder 自动录制 Selenium 爬虫脚本
- protobuf入门教程(四):repeated限定修饰符
- 自己动手写一个小型的TCP/IP协议
- PHPUnit的使用
- 例题4-6 师兄帮帮忙(A Typical Homework (a.k.a Shi Xiong Bang Bang Mang),Rujia Liu's Present 5, UVa 12412)
- vue使用支付宝支付