日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql插入timeStamp类型数据时间相差8小时的解决办法

發布時間:2024/1/23 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql插入timeStamp类型数据时间相差8小时的解决办法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

以管理員身份登陸mysql?執行以下語句

?

mysql?>?SET?time_zone?=?'+8:00';???#?此為北京時,我們所在東8區
???mysql>?flush?privileges;???#?立即生效

這樣就ok了,在讓用戶測試,發現問題已經解決了!!

?

如果做了上面的操作還沒有生效的話,

?

請在my.cnf/my.ini的?[mysqld]下的第一行(和[mysqld]間不能有其他內容)中加上


default-time_zone?=?'+8:00'


然后重啟mysql服務。

這種方式設置不管用,又找了一種方式

數據庫時區沒設置對,

serverTimezone=UTC或者GMT改成CTT(Asia&Shanghai)即可

完整的數據庫url為:

spring.datasource.url=jdbc:mysql://127.0.0.1:3000/abc?useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT&zeroDateTimeBehavior=convertToNull&useSSL=false
?

package com.aaa.chapter08;import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.Date;/*** Created by 張晨光 on 2020/3/12 15:44*/ public class JDBC84 {public static void main(String[] args) throws ClassNotFoundException, SQLException {//1.加載驅動;Class.forName("com.mysql.cj.jdbc.Driver");//2.獲得連接對象String url="jdbc:mysql://localhost:3306/School?useTimezone=true&serverTimezone=CTT&useUnicode=true&characterEncoding=utf8&useSSL=false";String user="root";String password="root";Connection conn = DriverManager.getConnection(url, user, password);//3.獲得預編譯語句對象,這個案例是增刪改,這時候有3個問號String sql="update student set age=?,pwd=?,birth=? where id=?";PreparedStatement pstmt = conn.prepareStatement(sql);//3.2給占位符賦值;這個知識點要求大家熟練掌握,C#String.format({0},{1})pstmt.setInt(1,111);pstmt.setString(2,"888999");//1.過期的方法;year-1900,month:0-11,day:13//pstmt.setDate(3,new java.sql.Date(2020-1900,2,13)); //設置日期格式//2.方法;// System.out.println(System.currentTimeMillis()); //當前時間的毫秒數; // pstmt.setDate(3,new java.sql.Date(System.currentTimeMillis()));系統時間;//pstmt.setDate(3,new java.sql.Date(System.currentTimeMillis()));Date dt=new Date();SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String date = sdf.format(dt);//用這種方式最不容易出錯,直接是將時間按照指定的格式出來,然后設置成了字符串//不會有這個時區問題,時區問題java.sql.Date(值)有這個問題。pstmt.setString(3,date); //這里直接是這種的。pstmt.setInt(4,7);//這里還是少8個小時,時區問題//3.3執行一下int result=pstmt.executeUpdate();System.out.println(result);//4.關閉資源;pstmt.close();conn.close();} }

?

?

總結

以上是生活随笔為你收集整理的mysql插入timeStamp类型数据时间相差8小时的解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。