Saat memformat tanggal di Oracle Database, kami memiliki opsi untuk menggunakan RR
dan YY
untuk mengembalikan tahun dua digit.
Kedua elemen format ini serupa. Perbedaannya terletak pada cara mereka menafsirkan dua digit tahun.
Kami juga memiliki opsi untuk menggunakan RRRR
dan YYYY
saat mengembalikan empat digit tahun.
Contoh
Berikut adalah contoh yang membandingkan RR
dan YY
elemen format:
SELECT
TO_CHAR(TO_DATE('20-Dec-81', 'DD-Mon-RR'), 'YYYY') AS "RR",
TO_CHAR(TO_DATE('20-Dec-81', 'DD-Mon-YY'), 'YYYY') AS "YY"
FROM DUAL;
Hasil:
RR YY _______ _______ 1981 2081
Kita dapat melihat bahwa RR
menafsirkan tahun 81 sebagai 1981, sedangkan YY
menafsirkannya sebagai 2081.
- Saat menggunakan
YY
, tahun yang ditampilkan selalu memiliki 2 digit pertama yang sama dengan tahun saat ini. - Dengan
RR
, abad nilai pengembalian bervariasi sesuai dengan tahun dua digit yang ditentukan dan dua digit terakhir tahun berjalan.
Begini cara dokumentasi Oracle menjelaskannya:
- Jika tahun dua digit yang ditentukan adalah 00 hingga 49, maka
- Jika dua digit terakhir tahun berjalan adalah 00 sampai 49, maka tahun yang dikembalikan memiliki dua digit pertama yang sama dengan tahun berjalan.
- Jika dua digit terakhir dari tahun berjalan adalah 50 hingga 99, maka 2 digit pertama dari tahun yang ditampilkan adalah 1 lebih besar dari 2 digit pertama tahun ini.
- Jika tahun dua digit yang ditentukan adalah 50 hingga 99, maka
- Jika dua digit terakhir dari tahun berjalan adalah 00 sampai 49, maka 2 digit pertama dari tahun yang dikembalikan adalah 1 kurang dari 2 digit pertama dari tahun berjalan.
- Jika dua digit terakhir tahun berjalan adalah 50 hingga 99, maka tahun yang dikembalikan memiliki dua digit pertama yang sama dengan tahun berjalan.
RRRR
dan YYYY
Elemen Format
Berikut adalah contoh yang membandingkan RRRR
dan YYYY
elemen format:
SELECT
TO_CHAR(TO_DATE('20-Dec-81', 'DD-Mon-RRRR'), 'YYYY') AS "RRRR",
TO_CHAR(TO_DATE('20-Dec-81', 'DD-Mon-YYYY'), 'YYYY') AS "YYYY"
FROM DUAL;
Hasil:
RRRR YYYY _______ _______ 1981 0081
Dalam hal ini, RRRR
mengembalikan tahun yang sama dengan RR
memang, tapi YYYY
mengembalikan tahun 0081.
Contoh di atas mengasumsikan bahwa Anda tahu bagaimana TO_CHAR()
dan TO_DATE()
kerja. Lihat Oracle TO_CHAR(datetime)
Fungsi dan Oracle TO_DATE()
Fungsi di Oracle untuk info lebih lanjut.