Oracle中的RR日期格式与YY日期格式

时间:2024-04-05 11:39:11

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日;

两者对照图如下:

Oracle中的RR日期格式与YY日期格式