从 java 更新 oracle 数据库中的 date/time

update date/time in oracle database from java

我的 table 中有 2 列数据类型为 TIMESTAMP 和 DATE。数据类型为 "DATE" 的列默认为 date/time,因此我们不需要从 JAVA 插入,它会自动插入。对于数据类型为 "TIMESTAMP" 的另一列,我手动插入 JAVA 中的当前时间,这是可选的。实际问题是数据库时间与我从 java 插入的时间不同。 ie.The 插入的默认时间与我从数据库手动插入的 date/time 不同。有没有办法将数据库时间与从 java 插入的系统时间相匹配? SQL 日期与我的系统日期相差 7-8 分钟,手动插入时应该匹配。

如果您想在上述两列中插入 current_date 但您无法这样做:

检查您的系统(java代码为运行ning)的时区和数据库的时区是否相同。

在数据库 运行 中查询:

SELECT dbtimezone FROM DUAL;

如果您发现它与您的 java/system 不同,那么您可以随时更改它:

ALTER DATABASE SET TIME_ZONE='+05:30'; 

https://docs.oracle.com/cd/E11882_01/server.112/e10729/ch4datetime.htm#NLSPG263

编辑 1: 如果你不想更改时区,你可以做两件事:

1) select date/time 表单数据库 java 而不是从 Calendar 对象中获取。然后将相同的 date/time 插入到 TIMESTAMP 列。 display timestamp value in java from database

2) 从 java 而不是数据库本身设置数据库 DATE 字段。所以显然从 java 设置两个字段。 http://alvinalexander.com/java/java-timestamp-example-current-time-now