mysql存储时间和查询出来相差8小时

发布时间: 2023-11-21 12:28 阅读: 文章来源:1MUMB3668PS
场景

近日,在调研工作流Activiti7,构建本地项目,开发demo的时候,发起时间不一致问题。已知,Activiti在部署流程的时候,会操作表ACT_RE_DEPLOYMENT,此表的作用是记录流程历史的发布(包括项目本身的启动也会记录一次);且,该表中定义了一个字段DEPLOY_TIME_(timestamp数据类型)。

构建

启动项目,部署一个流程(audit_process_1)发现字段DEPLOY_TIME_保存的时间与当前时间相差了13个小时。

流程部署记录表截图

排查问题

服务器时区

本地服务,肯定是东八区时间,不存在对应的问题,跳过此步骤。

查询mysql服务器的时间配置

SHOW VARIABLES LIKE ‘%time_zone%‘;

时区结果

CST时区

美国中部时间 Central Standard Time (USA) UTC-06:00澳大利亚中部时间 Central Standard Time (Australia) UTC+09:30中国标准时 China Standard Time UTC+08:00古巴标准时 Cuba Standard Time UTC-04:00

然而,美国从“3月11日”至“11月7日”实行夏令时,美国中部时间改为 UTC-05:00,与 UTC+08:00 相差 13 小时

解决方案

数据库连接参数

新增参数:serverTimezone=Asia/Shanghai

url: jdbc:mysql://localhost:3306/workflow?useSSL=false&nullCatalogMeansCurrent=true&serverTimezone=Asia/Shanghaiusername: rootpassword: 123456

流程发布截图

mysql配置

default-time-zone = ‘+08:00‘tips

timestamp,以时间戳格式存储,占用4个字节,显示依赖于所指定的时区;

datatime,以 YYYY-MM-DD HH:MM:SS 格式存储时期时间,精确到秒,占用8个字节的存储空间。

•••展开全文
相关文章