ORACLE引入RR日期型格式可能是為了解決兩千年的問題而提出的。
RR日期型格式的算法和實例:
(1)如果當前年份的最后兩位數(即不包括世紀)為0—49,並且指定的年份的最后兩位數也為0—49,則返回的日期在本世紀。(例如:當前年份為2002年,指明的日期是01-OCT-08,RR日期格式返回的日期為:2008年10月1日。而YY日期格式返回的日期也為:2008年10月1日。)
(2)如果當前年份的最后兩位數(即不包括世紀)為0—49,並且指定的年份的最后兩位數為50—99,則返回的日期在上一世紀。(例如:當前年份為2002年,指明的日期是01-OCT-98,RR日期格式返回的日期為:1998年10月1日。而YY日期格式返回的日期為:2098年10月1日。這也許就是我們所說的兩千年問題。)
(3)如果當前年份的最后兩位數(即不包括世紀)為50—99,並且指定的年份的最后兩位數為0—49,則返回的日期在下一世紀。(例如:當前年份為1999年,指明的日期是01-OCT-08,RR日期格式返回的日期為:2008年10月1日。而YY日期格式返回的日期為:1908年10月1日。)
(4)如果當前年份的最后兩位數(即不包括世紀)為50—99,並且指定的年份的最后兩位數也為50—99,則返回的日期在本世紀。(例如:當前年份為1999年,指明的日期是01-OCT-98,RR日期格式返回的日期為:1998年10月1日。而YY日期格式返回的日期也為:1998年10月1日。)
YY日期格式:
所返回的日期格式為:當前年份的前兩位+給定日期的年份
若當前年份為2016年,
指定的日期為01-OCT-08,則返回日期為:2008年10月1日;
指定的日期為01-OCT-98,則返回日期為:2098年10月1日;
兩者對照圖如下:

