Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak sformatować miesiąc za pomocą cyfr rzymskich w Oracle

Oracle Database zapewnia nam możliwość zwrócenia miesiąca od daty za pomocą cyfr rzymskich.

Na przykład, jeśli miesiącem jest sierpień, jego wartością dziesiętną będzie 08, a rzymską odpowiednikiem będzie VIII.

Sposobem na to jest użycie RM lub rm element format w masce formatu. To sformatuje miesiąc za pomocą cyfr rzymskich odpowiednio pisanych wielkimi lub małymi literami.

Format daty można określić w kilku miejscach.

Określ cyfry rzymskie podczas wywoływania funkcji

Oto przykład określania cyfr rzymskich podczas formatowania daty za pomocą TO_CHAR(datetime) funkcja:

SELECT TO_CHAR(DATE '2035-08-11', 'DD RM YYYY') FROM DUAL;

Wynik:

11 viii 2035

W tym przypadku podałem wielkie cyfry rzymskie.

Aby określić małe litery, po prostu zmień RM do rm :

SELECT TO_CHAR(DATE '2035-08-11', 'DD rm YYYY') FROM DUAL;

Wynik:

11 viii 2035

Patrz Lista elementów formatu daty i godziny w Oracle, aby uzyskać pełną listę elementów formatu, których można użyć do formatowania wartości daty i godziny.

Określ cyfry rzymskie dla całej sesji

Alternatywnie możesz ustawić format daty dla całej sesji. Może to być przydatne, jeśli potrzebujesz wykonać wiele wywołań funkcji, które zwracają datę.

Istnieją trzy istotne parametry:NLS_DATE_FORMAT , NLS_TIMESTAMP_FORMAT i NLS_TIMESTAMP_TZ_FORMAT .

Te parametry mają wartości domyślne, które pochodzą z NLS_TERRITORY parametr (który ma domyślną wartość zależną od systemu operacyjnego). W razie potrzeby możesz jednak zaktualizować dowolny z tych parametrów dla bieżącej sesji.

Oto przykład aktualizacji tych parametrów w celu użycia formatu daty, który zawiera cyfry rzymskie dla części miesiąca:

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

Wynik:

Session altered.


Session altered.


Session altered.

Teraz, kiedy wywołuję funkcję, która zwraca wartość daty i godziny, otrzymuję miesiąc w cyfrach rzymskich.

Przykład:

SELECT TO_CHAR(SYSDATE) FROM DUAL;

Wynik:

10 VIII 2021

Zauważ, że zdałem SYSDATE do TO_CHAR() .

Jeśli tego nie zrobię, NLS_DATE_FORMAT parametr nie działa:

SELECT SYSDATE FROM DUAL;

Wynik:

2021-08-10 20:04:49

Ten problem nie występuje w innych formatach dat. Spotkałem go tylko z cyframi rzymskimi.

Bardziej trwałe rozwiązanie

Powyższe przykłady są tymczasowymi rozwiązaniami zwracania miesiąca cyframi rzymskimi. Aby uzyskać bardziej trwałe rozwiązanie, parametry NLS można ustawić na poziomie bazy danych, w pliku parametrów inicjowania lub w zmiennych środowiskowych. Zobacz Metody ustawiania parametrów NLS i ich priorytetów, aby zapoznać się z ich przykładami, a także ich kolejnością pierwszeństwa względem siebie.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wywołaj funkcję Oracle z Javy

  2. Tabele zewnętrzne Oracle

  3. Jak tworzyć procedury składowane PL/SQL z parametrami w bazie danych Oracle

  4. Czy instrukcje DDL zawsze dają niejawne zatwierdzenie, czy można uzyskać niejawne wycofanie?

  5. Czy możliwe jest zapytanie kolumny oddzielonej przecinkami dla określonej wartości?