【问题标题】:JSP output of oracle date format is different between servers?oracle日期格式的JSP输出在服务器之间是不同的?
【发布时间】:2012-07-26 00:43:31
【问题描述】:

我使用的是 Oracle 11g,当我尝试通过 JSP 提取数据时,两个环境之间的日期格式不同。两者都具有相同的代码。两者都指向两个不同的 oracle 11g 实例。

例如,服务器 A 返回 2012-08-31,但服务器 B 返回 8/31/2012

这是我打印日期的 jsp 部分:

String query = "select dob from profiles";
Stement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE);
ResultSet rs =stmt.executeQuery(query);
while(rs.next()){
out.println(rs.getString[0]);
}

系统 A: Oracle Database 11g 企业版 11.2.0.2.0 - 64 位 Oracle JDBC 驱动程序版本:11.2.0.3.0

系统 B: Oracle 数据库 11g 版本 11.1.0.0.0 Oracle JDBC 驱动程序版本:10.2.0.2.0

知道为什么会这样吗?先感谢您。 约翰

【问题讨论】:

  • 没有足够的细节。提供JSP和更多细节
  • 您是否尝试过使用rs.getDate()。顺便说一句,这rs.getString[0] 看起来不正确

标签: jsp oracle11g


【解决方案1】:

由于 server_A 和 server_B 上的源代码相同。

尝试检查那些服务器上的 JDBC_Driver.jar。

你可以用类格式化日期:SimpleDateFormat

希望这会对你有所帮助。

【讨论】:

  • 它与 JDBC_Driver.jar 有什么关系?你能解释一下吗?
  • 我们的应用已经部署在很多客户端上,而且是经验。有时我们遇到了形成问题,甚至更严重的问题,发现Servlet-Container中的驱动版本没有映射Oracle DB。
    我的意思是如果可以检查一下,但不确定是jdbc-driver版本问题.
  • 有时与 oracle 的连接会话会影响日期的形成。检查服务器区域设置。尝试“select * from nls_session_parameters”找到一些国家语言支持。
  • 有什么方法可以指定通过 JSP 使用 10.2 jdbc 驱动程序?
  • 我不知道。对不起。可能可以用 Java 代码指定。
    DatabaseMetaData meta = conn.getMetaData(); System.out.println(meta.getDriverVersion());
【解决方案2】:

例如,服务器 A 返回 2012-08-31,但服务器 B 返回 2012 年 8 月 31 日。

这些都不是 oracle 默认的 Date 类型。

对于日期的输入和输出,标准的Oracle日期格式是DD-MON-YY,如下: 13-NOV-92.

我怀疑您是否将日期存储在 String 中并且输入可能不同。

  1. 仔细检查数据库中存储的值。它们的格式相同吗? 然后在代码中查找一些内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-17
    • 2019-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多