使用系统时区的MySQL数据库服务器,同时保存时间戳列

时间:2018-10-27 06:24:53

标签: java mysql tomcat

我们正在使用- Java 8 Web服务器-Tomcat 8.5, 数据库服务器-MySQL 5.7, 休眠-5, 基于Tomcat jdbc池的数据源。

我们将MySQL连接器J从5.1.46版本升级到8.0.16。现在,我们的Web服务器时区为UTC,而mysql服务器现在处于IST时区,直到仅在UTC中保留升级驱动程序时间戳列值(使用hibenate)之前,但移至J8驱动程序后,它将保存到IST的MySQL服务器时区。

我们只希望在UTC中存储/获取时间戳记值。

1 个答案:

答案 0 :(得分:0)

默认情况下,连接时区是MySQL数据库服务器的时区。连接到MySQL数据库服务器时,可以使用其他时区。为此,您必须将会话的时区设置为这样的其他时区:

  SET time_zone ='+03:00';

我认为,这应该可行。

在创建表时,您还可以编写如下查询:

  CREATE TABLE categories (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(255) NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
 );

我希望这会起作用。有关MySql时间戳的更多详细信息,请查看以下文章:

http://www.mysqltutorial.org/mysql-timestamp.aspx