• mysql数据库时区问题


    遇到一个问题:项目jar包扫描后,升级了好多jar包,包括mysql的驱动jar包升级到了8.0版本以上。升级后从mysql中查出的时候,全都比数据库的时间多13小时,而且这些时间存到数据库的时间,有些是正确的时间,有时比正确时间少13小时,这样返回给前端的时间就不准确,解决这个问题只要在springboot的数据库连接配置中增加一段配置就能解决问题

    spring:

       datasource:

          url:jdbc:mysql://localhost:3306/mydb3?serverTimezone=GMT%2B8&useSSL=false

    这个时区要设置好,不然会出现时差,
    如果你设置serverTimezone=UTC,连接不报错,
    但是我们在用java代码插入到数据库时间的时候却出现了问题。
    比如在java代码里面插入的时间为:2018-06-24 17:29:56
    但是在数据库里面显示的时间却为:2018-06-24 09:29:56
    有了8个小时的时差
    UTC代表的是全球标准时间 ,但是我们使用的时间是北京时区也就是东八区,领先UTC八个小时。

    //北京时间==东八区时间!=北京当地时间
    serverTimezone=GMT%2B8
    //或者使用上海时间
    serverTimezone=Asia/Shanghai

    我不确定为什么我的时间相差13小时,加上这段设置也能解决问题,应该是之前我既没有设置UTC,也没有设置东八区,使用默认的,也许就差了13小时

    以上为百度得来

    ===================================

    公司实操:

    spring.datasource.druid.url=jdbc:mysql://服务器地址/数据库名?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true
  • 相关阅读:
    Effective C++学习笔记之explicit
    腾讯面试经验2
    腾讯面试经验
    值类型和引用类型的区别,struct和class的区别
    【转载】固态硬盘的S.M.A.R.T详解
    SSD的传输总线、传输协议、传输接口
    坏块管理(Bad Block Management,BBM)
    脱离SVN的控制
    Func的介绍
    简单AOP
  • 原文地址:https://www.cnblogs.com/toufajiantuzhongbuhui/p/12852308.html
Copyright © 2020-2023  润新知