mysql临时数据类型date_java中的DateTime类型和mysql中的TimeStamp类型时间数据不一致...

今天在项目中遇到java的TimeStamp类型的时间数据插入到mysql的DateTime类型时发现时间刚好差了13个小时。因此上网查了查相关问题的解决,折腾了半天,记录下来解决方案。

不管是差了几个小时,其实就是时区的问题。

可以通过先查询自己本地时区

43b94330da7285634b45028df0a8e2eb.png

一般都是东八区没错。

第一种方法(临时解决,不推荐)

这种的方法重启数据会被还原掉,所以不推荐使用.

然后关键就是也将数据库mysql中的时区改为东八区。1.登录mysql mysql -uroot -p 输入密码;2.运行命令show variables like '%time_zone%';

0bbe4a203465d5c5f77eeff27fbed0df.png

可以看到system_time_zone项是CST。这时候排查mysql问题结束。3.修改一下mysql的时区设置即可

faf5c108f43cb1ed6de487eabcfbf1de.png

set global time_zone='+8:00';

set time_zone='+8:00';

flush privileges ;

4.然后运行自己的java代码可以解决问题。

第二种方法(永久解决,推荐)

1. 修改my.cnf实现永久修改

my.cnf文件位置不是固定的,在哪里视情况而定.vi /etc/mysql/my.cnf

2. 然后在mysqld下边的配置中添加一行:default-time_zone = '+8:00'

3. 然后重启mysqlservice mysql restart

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值