当前位置: 首页 > news >正文

[实战]MySQL时间多了一秒

场景

同时保存一条数据在MySQL和Redis中,JAVA系统中显示Redis和MySQL数据差了一秒,即MySQL比Redis中快了一秒。

复现

我们系统中MySQL的时间类型用的是timestamp,问题是一样的。

CREATE TABLE `test_date` (`id` int(11) NOT NULL AUTO_INCREMENT,`date` datetime DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4mysql> INSERT INTO `test`.`test_date` (`date`) VALUES ('2022-12-05 11:40:49');
Query OK, 1 row affected (0.04 sec)mysql> INSERT INTO `test`.`test_date` (`date`) VALUES ('2022-12-05 11:40:49.449');
Query OK, 1 row affected (0.04 sec)mysql> INSERT INTO `test`.`test_date` (`date`) VALUES ('2022-12-05 11:40:49.500');
Query OK, 1 row affected (0.09 sec)mysql> SELECT * FROM test.test_date;
+----+---------------------+
| id | date                |
+----+---------------------+
|  1 | 2022-12-05 11:40:49 |
|  2 | 2022-12-05 11:40:49 |
|  3 | 2022-12-05 11:40:50 |
+----+---------------------+
3 rows in set (0.00 sec)		

原因

存储MySQL时,使用的是MyBatis plus,存储的时间会有毫秒数。

解决方案

方案一

入库时设置时间的毫秒值为0

/*** 设置时间的毫秒值为0** @param date* @return*/
public static Date getPreciseTime(Date date) {// 日历对象Calendar c = Calendar.getInstance();// 设置时间c.setTime(date);// 设置毫秒值为0c.set(Calendar.MILLISECOND, 0);return c.getTime();
}

方案二(未验证)

  设置数据库精度

参考:

解决时间字段存入MySQL数据库时间差一秒的问题_ob date类型 差1秒-CSDN博客

http://www.lryc.cn/news/503223.html

相关文章:

  • Windows环境基于ecplise的spring boot框架新建spring start project
  • C 进阶 — 字符函数和字符串函数 ( 二 )
  • Mybatis Plus 3.0 快速入门
  • RFDiffusion 计算二面角函数get_dih解读
  • 记一次回调失败问题
  • 前端常用的方法
  • RK3568(六)——led设备驱动(GPIO子系统)
  • hbuilder 本地插件配置
  • Spring Boot集成Kafka:最佳实践与详细指南
  • 基于Qwen2-VL模型针对LaTeX OCR任务进行微调训练 - 多图推理
  • 详解下c语言下的多维数组和指针数组
  • 免费送源码:Java+ssm+MySQL 基于微服务架构的餐饮系统的设计与实现 计算机毕业设计原创定制
  • LeetCode hot100-69-N
  • 【橘子容器】如何构建一个docker镜像
  • EFAK kafka可视化管理工具部署使用
  • Spring Boot 工程分层实战(五个分层维度)
  • vscode IntelliSense Configurations
  • hbase读写操作后hdfs内存占用太大的问题
  • C++----入门篇
  • C语言程序设计P5-5【应用函数进行程序设计 | 第五节】—知识要点:变量的作用域和生存期
  • 用 Sass 模块化系统取代全局导入,消除 1.80.0 引入的 @import 弃用警告
  • 安卓低功耗蓝牙BLE官方开发例程(JAVA)翻译注释版
  • 搭建fastapi项目
  • Maven学习(Maven项目模块化。模块间“继承“机制。父(工程),子项目(模块)间聚合)
  • 华为云云原生中间件DCS DMS 通过中国信通院与全球IPv6测试中心双重能力检测
  • PostgreSQL中事件触发器Event Trigger
  • uni.request流式(Stream)请求,实现打印机效果
  • canvas保存图片
  • DNS到底有什么用?
  • 什么是CRM系统?CRM系统的功能、操作流程、生命周期