Oracle Database memberi kita kemampuan untuk mengembalikan bulan dari tanggal menggunakan angka romawi.
Misalnya, jika bulannya Agustus, nilai desimalnya adalah 08 dan angka romawinya yang setara adalah VIII.
Cara melakukannya adalah dengan menggunakan RM
atau rm
elemen format dalam topeng format Anda. Itu akan memformat bulan menggunakan angka romawi dalam huruf besar atau huruf kecil masing-masing.
Menentukan format tanggal dapat dilakukan di beberapa tempat.
Tentukan Angka Romawi Saat Memanggil Fungsi
Berikut adalah contoh menentukan angka romawi saat memformat tanggal dengan TO_CHAR(datetime)
fungsi:
SELECT TO_CHAR(DATE '2035-08-11', 'DD RM YYYY') FROM DUAL;
Hasil:
11 VIII 2035
Dalam hal ini saya menentukan angka romawi huruf besar.
Untuk menentukan huruf kecil, cukup ubah RM
ke rm
:
SELECT TO_CHAR(DATE '2035-08-11', 'DD rm YYYY') FROM DUAL;
Hasil:
11 viii 2035
Lihat Daftar Elemen Format Datetime di Oracle untuk daftar lengkap elemen format yang dapat digunakan untuk memformat nilai datetime.
Tentukan Angka Romawi Untuk Seluruh Sesi
Anda juga dapat mengatur format tanggal untuk seluruh sesi Anda. Ini bisa berguna jika Anda perlu melakukan banyak panggilan fungsi yang mengembalikan tanggal.
Ada tiga parameter yang relevan:NLS_DATE_FORMAT
, NLS_TIMESTAMP_FORMAT
, dan NLS_TIMESTAMP_TZ_FORMAT
.
Parameter ini memiliki nilai default yang diturunkan dari NLS_TERRITORY
parameter (yang memiliki nilai default yang bergantung pada sistem operasi). Namun, Anda dapat memperbarui salah satu parameter ini untuk sesi saat ini jika diperlukan.
Berikut adalah contoh memperbarui parameter ini untuk menggunakan format tanggal yang menyertakan angka romawi untuk bagian bulan:
ALTER SESSION SET NLS_DATE_FORMAT = 'DD RM YYYY';
ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'DD RM YYYY HH12:MI:SSXFF AM';
ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT = 'DD RM YYYY HH12:MI:SSXFF AM TZR';
Hasil:
Session altered. Session altered. Session altered.
Sekarang, ketika saya memanggil fungsi yang mengembalikan nilai datetime, saya mendapatkan bulan dalam angka romawi.
Contoh:
SELECT TO_CHAR(SYSDATE) FROM DUAL;
Hasil:
10 VIII 2021
Perhatikan bahwa saya melewati SYSDATE
ke TO_CHAR()
.
Jika saya tidak melakukannya, NLS_DATE_FORMAT
parameter tidak berlaku:
SELECT SYSDATE FROM DUAL;
Hasil:
2021-08-10 20:04:49
Masalah ini tidak ada dengan format tanggal lainnya. Saya hanya menemukannya dengan angka romawi.
Solusi yang Lebih Permanen
Contoh di atas adalah solusi sementara untuk mengembalikan bulan dalam angka romawi. Untuk solusi yang lebih permanen, parameter NLS dapat diatur pada tingkat database, dalam file parameter inisialisasi, atau dalam variabel lingkungan. Lihat Metode Pengaturan Parameter NLS dan Prioritasnya untuk contoh ini, serta urutan prioritasnya dalam kaitannya satu sama lain.