我有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。
答案 0 :(得分:0)
生产数据库:13-03-2097
在发展DB:13-03-1997
这与在制作中使用'DD-MM-YY'
和在制作中使用'DD-MM-RR'
的格式模板一致。
使用YY
掩码,Oracle将世纪默认为当前版本。 RR日期格式的窗口是固定的。多年00-49
以20
为前缀,多年50-99
以19
为前缀。 13-03-2097
无法填充RR
掩码。
当然,真正的问题是为什么有人在2013年仍在使用RR
面具。它是作为帮助组织避免Y2K大灾难的kludge而引入的。所有新代码都应该强制执行四位数年份。