OceanBase RR 日期時(shí)間格式化元素

2021-06-17 16:38 更新

?RR? 日期時(shí)間格式化元素類似于 ?YY? 日期時(shí)間格式化元素,但它為跨世紀(jì)日期值存儲(chǔ)提供了額外的靈活性。在 ?YY? 日期時(shí)間格式化元素里,您需要指定年份的全部數(shù)字。而在 ?RR? 日期時(shí)間格式化元素里,您只需指定年份數(shù)字的最后兩位數(shù),便可以存儲(chǔ)日期值。

?RR? 日期時(shí)間格式化元素與 ?TO_DATE? 函數(shù)一起使用,返回值的世紀(jì)根據(jù)指定的兩位數(shù)字年份和當(dāng)前年份的最后兩位數(shù)字而變化。如果 ?YY? 日期時(shí)間格式化元素與 ?TO_DATE? 函數(shù)一起使用,則返回的年份始終與當(dāng)前年份具有相同的世紀(jì)。

如果指定的兩位數(shù)字年份是 00~49,當(dāng)前年份的最后兩位數(shù)字是 00~49,則返回的年份與當(dāng)前年份具有相同的世紀(jì)。當(dāng)前年份的后兩位數(shù)字是 50~99,則返回年份的前兩位數(shù)字為下一個(gè)世紀(jì)。

如果指定的兩位數(shù)字年份是 50~99,當(dāng)前年份的后兩位數(shù)字為 00 到 49,則返回年份的前兩位數(shù)字為當(dāng)前年份 的上一個(gè)世紀(jì)。當(dāng)前年份的最后兩位數(shù)字是 50~99,則返回的年份與當(dāng)前年份處于同一個(gè)世紀(jì)。

如下所示,?RR? 日期時(shí)間格式化元素根據(jù)前兩位數(shù)字不同的年份返回相同的值。假設(shè)這些查詢是在 1950~1999 年期間發(fā)出的,執(zhí)行以下語句:

SELECT TO_CHAR(TO_DATE('27-OCT-98', 'DD-MON-RR'), 'YYYY') "Year1" ,
TO_CHAR(TO_DATE('27-OCT-17', 'DD-MON-RR'), 'YYYY') "Year2"  FROM DUAL;

查詢結(jié)果如下:

+-------+-------+
| Year1 | Year2 |
+-------+-------+
| 1998  | 2017  |
+-------+-------+

假設(shè)這些查詢是在 2000~2049 年期間發(fā)出的,執(zhí)行以下語句:

SELECT TO_CHAR(TO_DATE('27-OCT-98', 'DD-MON-RR'), 'YYYY') "Year1" ,
TO_CHAR(TO_DATE('27-OCT-17', 'DD-MON-RR'), 'YYYY') "Year2"  FROM DUAL;

查詢結(jié)果如下:

+-------+-------+
| Year1 | Year2 |
+-------+-------+
| 1998  | 2017  |
+-------+-------+

通過上面 2 個(gè)示例的查詢結(jié)果可見,無論是在 2000 年之前還是之后查詢,都將返回相同的值。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)