Oracle:意外强制RR年份格式

时间:2014-03-20 08:26:03

标签: java sql oracle date type-conversion

我在Oracle表中有一个DATE字段。 此字段的填充脚本如下所示:

TO_DATE('2013-01-02 10:15:51', 'YYYY-MM-DD HH24:MI:SS')

但是在我的SQL Developer编辑器中,转到表 - >此表和日期的数据部分类似于 02/01/13

然后,在SQL Developer SQL表中,在一个简单的查询中,我想强制年份显示经典TO_DATE转换的四位数:

TO_DATE(field, 'DD/MM/YYYY') AS date_field

它也显示 02/01/13

最后,最糟糕的是在应用程序中,我试图再次强制四位数,并使用java SimpleDateFormat类转换日期,使用dd / MM / yyyy模式。 申请日期为 02/01/0013

如果我编辑该值并设置 02/01/2013 ,则SQL Developer会生成此更新句子

TO_DATE('02/01/2013', 'DD/MM/RR')

我不明白为什么要尝试转换为RR年格式。

那么,发生了什么?是一些会话或数据库参数吗?

非常感谢任何帮助。 此致

3 个答案:

答案 0 :(得分:1)

如果您编写SQL Developer版本,那就太好了。它与数据库无关,只是SQL Developer的设置。

此行为可在首选项(工具/首选项)中自定义:DATABASE / NLS /日期格式 默认情况下,它设置为DD.MM.RR,将其更改为您喜欢的那个。

答案 1 :(得分:1)

打开工具首选项和NLS。enter image description here

答案 2 :(得分:0)

我认为DD / MM / RR是oracle数据库的默认NLS_DATE_FORMAT。你可以查询它以确切看到。

您的问题不是数据的存储方式,而是您如何检索数据。

尝试使用TO_CHAR()和mm:ss的掩码格式来获取确切的时间戳,看看是否得到正确的日期