【发布时间】:2011-07-06 23:21:28
【问题描述】:
我有一个大型遗留应用程序,它调用 resultSet.getString(column) 并且它调用的列是 Oracle 中的 DATE 格式。这段代码在 Oracle 10g 客户端上运行得很好。它将返回以下内容:
'2008-05-19 10:03:56.0'
但是,当我使用 Oracle 11g 客户端(服务器未更改)时,它会给出以下信息:
'2008-05-19 10:03:56'
现在,我知道解决此问题的正确方法是更改代码以不将 getString 用于日期函数,但这是大量代码,我们正在尝试这样做而无需更改代码。
我可以使用任何配置参数在 Oracle 客户端解决此问题吗?
我尝试了以下方法,它甚至没有改变格式:
Statement stmt = conn.createStatement();
stmt.execute("alter session set nls_date_format = 'YYYY-MM-DD HH24:MI'");
这个已经取消了秒数,但是在运行查询时它仍然使用秒数。所以我认为 NSL_DATE_FORMAT 更新不会起作用。
【问题讨论】:
-
类似,但不是重复的。他的回答并没有解决我的问题。