快捷搜索:  汽车  科技

mysql查看数据库字段相差毫秒(Mysql数据库保存时间timestamp)

mysql查看数据库字段相差毫秒(Mysql数据库保存时间timestamp)美国中部时间 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 小时。CST时区本地服务,肯定是东八区时间,不存在对应的问题,跳过此步骤。查询mysql服务器的时间配置SHOW VARIABLES LIKE '%time_zone%';时区结果

场景

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

构建

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

mysql查看数据库字段相差毫秒(Mysql数据库保存时间timestamp)(1)

流程部署记录表截图

排查问题

服务器时区

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

查询mysql服务器的时间配置

SHOW VARIABLES LIKE '%time_zone%';

mysql查看数据库字段相差毫秒(Mysql数据库保存时间timestamp)(2)

时区结果

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/Shanghai username: root password: 123456

mysql查看数据库字段相差毫秒(Mysql数据库保存时间timestamp)(3)

流程发布截图

mysql配置

default-time-zone = ' 08:00'tips

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

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

猜您喜欢: