首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JDBC的Oracle中的日期问题

使用JDBC的Oracle中的日期问题
EN

Stack Overflow用户
提问于 2009-07-14 15:10:48
回答 3查看 1.4K关注 0票数 2

我有以下场景:两台计算机:第一台计算机运行在Windows Vista下,第二台计算机运行在Linux下,两台计算机都连接到Oracle 10g。Oracle 10g正在第二台计算机上运行。

我已经用Java编写了一个使用ojdbc14.jar连接到Oracle的测试程序

这个测试程序只连接到数据库,从特定的表中检索一些数据,并打印日期字段的值。

当在第一台机器中运行程序测试时,我的日期类似于'10/01/1987‘当在第一秒中运行程序测试时,我的日期类似于'09/30/1987’

当我使用plsqldeveloper来显示这个数据时,日期字段看起来像'10/01/1987‘

有人能解释一下为什么吗?

提前感谢

EN

回答 3

Stack Overflow用户

发布于 2009-07-14 15:16:45

在我看来,这是一个时区问题--一台机器设置为美国时间,另一台设置为GMT或UTC?因此,日期相隔一天,但可能具有相同的UTC / long值。

您是否使用Timestamp作为Oracle中的列类型?例如,

代码语言:javascript
复制
...
"created" timestamp(6) not null default systimestamp enable,
...

那么使用java.sql.Timestamp呢?例如:

代码语言:javascript
复制
...
Timestamp created = rs.getTimestamp("created");
...
票数 1
EN

Stack Overflow用户

发布于 2009-07-14 15:26:57

我认为Oracle可能将日期存储为GMT值。Oracle所做的是正确的,但是当从Oracle数据库中读取值时,您的客户端需要调整到GMT日期。似乎"plsqldeveloper“显示了从Windows机器上查询时的GMT-7调整时间和在Linux机器上查询时的原始GMT。我想说的是Linux机器(或Linux机器上的plsqldeveloper)需要额外的配置来进行GMT调整。

顺便说一句,如果它实际上是一个GMT问题,那么它必须也存储一天中的时间,因为这是GMT-7调整可能显示为一整天休息的唯一方式。所以,我很好奇你们日期上的“一天中的时间”是什么。此外,当您登录到Oracle管理工具并查看其中的日期时,有何不同?(如果你没有Oracle,你可以下载轻量级/快速版,它很容易安装)

票数 0
EN

Stack Overflow用户

发布于 2009-07-30 04:36:39

请确保还检查NLS_DATE_FORMAT设置。

这可以在您的两台计算机之间进行不同的配置或默认设置。

有关更多示例,请参阅此网址:http://www.dba-oracle.com/t_nls_date_format_sysdate.htm

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1126042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档