生产和开发中的Oracle sql日期格式问题

时间:2013-12-05 11:33:15

标签: sql oracle oracle11g

我有y2k类的问题。

当我在开发和生产数据库中运行以下查询时,我得到两个不同的结果,如下所示:

Select TO_CHAR(Test_Date,'DD-MM-YYYY') From Test_Table Where row_id = 1;

在生产数据库中:

TO_CHAR(Test_Date,'DD-MM-YYYY')
-----------------------------------
13-03-2097

在开发DB中:

TO_CHAR(Test_Date,'DD-MM-YYYY')
-----------------------------------
13-03-1997

Test_Date的格式为DD-MM-RR

任何人都可以帮助解决上述差异,因为我不知道原因。

我们正在使用Oracle 11g。

1 个答案:

答案 0 :(得分:0)

  

生产数据库:13-03-2097
  在发展DB:13-03-1997

这与在制作中使用'DD-MM-YY'和在制作中使用'DD-MM-RR'的格式模板一致。

使用YY掩码,Oracle将世纪默认为当前版本。 RR日期格式的窗口是固定的。多年00-4920为前缀,多年50-9919为前缀。 13-03-2097无法填充RR掩码。

当然,真正的问题是为什么有人在2013年仍在使用RR面具。它是作为帮助组织避免Y2K大灾难的kludge而引入的。所有新代码都应该强制执行四位数年份。