繁体   English   中英

从java更新oracle数据库中的日期/时间

[英]update date/time in oracle database from java

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

如果要在两个提到的列中插入current_date,则无法执行此操作:

检查您的系统(运行Java代码的地方)时区和数据库的时区是否相同。

在数据库中运行此查询:

SELECT dbtimezone FROM DUAL;

如果您发现它与您的java /系统不同,那么您可以随时使用以下命令进行更改:

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

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

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

1)在java中选择日期/时间表单数据库,而不是从Calendar对象中获取它。 然后将相同的日期/时间插入TIMESTAMP列。 从数据库中显示java中的时间戳值

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM