当前位置: 首页 > 知识库问答 >
问题:

JDBC和oracle数据库时区处理

龙默
2023-03-14

我在oracle DB中创建了示例表,如下所示

"CREATED_ON" TIMESTAMP (6), 
"CREATED_ON_TIMEZONE" TIMESTAMP (6) WITH TIME ZONE, 
"TIMEZONE_GMT" TIMESTAMP (6) WITH TIME ZONE

和从java插入的值如下所示

preparedStatement.setTimestamp(1, new Timestamp(new Date().getTime()));
preparedStatement.setTimestamp(2, new Timestamp(new Date().getTime()));
preparedStatement.setTimestamp(3, new Timestamp(new Date().getTime()) ,Calendar.getInstance(TimeZone.getTimeZone("UTC")));

亚洲/加尔各答的JVM时区。我使用SQL developer查询数据。我只是想澄清我的理解

我在下面的文章中提到了,但我的观察看起来完全不同。http://brian.pontarelli.com/2011/08/16/时区数据库处理/

共有1个答案

柳胜
2023-03-14

问题是Javatimestamp不包含任何时区信息。

因此,将timestamp值插入到具有时区timestamp的列中。在这种情况下,Oracle使用from_tz进行隐式强制转换:

FROM_TZ(<your value>, SESSIONTIMEZONE)

命令preparedstatement.settimestamp(3,new Timestamp(new Date().gettime()),calendar.getinstance(timezone.gettimezone(“utc”));只有在更改会话SET TIME_ZONE='utc'之后才正确;

 类似资料:
  • 我正在尝试一个程序来检查与oracle数据库的连接,如下所示 但在eclipse中运行之后,它显示了以下异常。 JAVAsql。SQLException:Listener拒绝了连接,出现以下错误:ORA-12505,TNS:Listener当前不知道连接描述符中给出的SID 请帮助我,我是oracle数据库的新手。

  • 将数据库从Oracle 11g升级到18c后,在尝试获取数据库表时,下面的一行将处于无限挂起状态。 司机:ojdbc8.jar18.3.0.0 服务器:Oracle18c

  • 本文向大家介绍jdbc连接oracle数据库功能示例,包括了jdbc连接oracle数据库功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jdbc链接oracle数据库功能。分享给大家供大家参考,具体如下: 希望本文所述对大家java程序设计有所帮助。

  • 我们正在使用tomcat jdbc连接池与Oracle数据库。最近,我们遇到了JDBC瘦客户机的Oracle数据库中存在太多非活动会话的问题。 有人能帮我们吗?它为什么会导致数据库中的非活动会话,以及对此的解决方案是什么。

  • 主要内容:数据库和实例Oracle数据库是Oracle公司开发和销售的一种对象关系数据库管理系统。 Oracle数据库通常被称为Oracle RDBMS或简称为Oracle。 数据库和实例 Oracle数据库服务器由一个数据库和至少一个数据库实例组成。 数据库是一组存储数据的文件,而数据库实例是一组管理数据库文件的内存结构。 另外,数据库由后台进程组成。 一个数据库和一个实例是紧密相连的,因此术语 - Oracle数据

  • 问题内容: 我正在尝试使用JDBC在oracle数据库上创建Java源对象。 我要创建的源如下: 我已经尝试过使用execute方法,这给了我。 当我尝试在普通对象上使用execute方法时,出现错误:“ 有人知道我在做什么错吗?似乎在Google上也找不到任何内容。 编辑:这是我用来尝试执行脚本的代码(字符串包含您可以在上面看到的脚本,变量是对象。 如果我尝试使用Statement就是这样: 问