我的表中有 2 列,数据类型为 TIMESTAMP 和 DATE。数据类型为“DATE”的列是默认的日期/时间,所以我们不需要从 JAVA 插入,它会自动插入。对于数据类型为“TIMESTAMP”的另一列,我从 JAVA 手动插入当前时间,这是可选的。实际问题是数据库时间与我从 java 插入的时间不同。即插入的默认时间与我从数据库手动插入的日期/时间不同。有没有办法将数据库时间与从java插入的系统时间相匹配?SQL 日期与我的系统日期相差 7-8 分钟,手动插入时应该匹配。
如果您想在提到的两列中插入 current_date 并且您无法这样做:
检查您的系统(运行 java 代码的地方)时区和数据库的时区是否相同。
在数据库中运行此查询:
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#NLPG263
编辑 1:如果您不想更改时区,您可以做两件事:
1)在java中选择日期/时间表单数据库,而不是从日历对象中获取。然后将相同的日期/时间插入到 TIMESTAMP 列中。从数据库显示java中的时间戳值
2)从java而不是数据库本身设置数据库日期字段。所以显然从java设置了这两个字段。http://alvinalexander.com/java/java-timestamp-example-current-time-now
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句