mysql时区之数据库自动生成默认时间不正确进行校正

引言

查看数据库数据,发现表中自动生成的创建时间不正确,故先使用SELECT CURRENT_TIMESTAMP; sql验证自动生成的时间是否是不正确的。经验证确定是自动生成的时间不正确,进而想到了对时间进行校正。

校正过程

首先查看数据库时间的时区是否是当地的。

SELECT @@global.time_zone, @@session.time_zone;

经查看确认数据库自动生成时间戳所使用的时区是system系统时区。
依赖系统时区耦合性以及不太好判断其准确时区。因此将数据库时间戳所使用的时区进行固定。

SET GLOBAL time_zone = ‘Asia/Shanghai’;
SET GLOBAL time_zone = ‘+8:00’;

SET time_zone = ‘Asia/Shanghai’; 只对当前会话的时间戳有影响不会对其他连接的会话产生影响。所以不使用这条sql进行更改。

拓展

SELECT NOW(); – 显示当前日期和时间
SELECT CURDATE(); – 显示当前日期
SELECT CURTIME(); – 显示当前时间

SELECT DATE_FORMAT(NOW(), ‘%Y-%m-%d %H:%i:%s’); – 格式化时间

mysql进行数据库连接的时候也可以进行时区的转化倘若连接的时候进行了时区转换设置+8时区,数据库又设置了+8时区则会使得时间多8h

url: ${MYSQL_URL:jdbc:mysql://localhost:13306/device?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8}

serverTimezone=GMT%2B8 此配置可以将数据库表中标准时间转为上海时间 +8

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值