Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Cara Memformat Bulan dalam Angka Romawi di Oracle

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perlu Oracle SQL untuk membagi rentang tanggal/waktu berdasarkan hari

  2. Kunci liquibase - alasan?

  3. Bagaimana cara memperbaiki subquery baris tunggal Ora-01427 mengembalikan lebih dari satu baris dalam pilihan?

  4. Sisipkan Oracle jika baris tidak ada

  5. SQL - Temukan pernyataan yang memasukkan nilai tertentu