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

Jak sprawdzić format daty sesji Oracle

Podczas pracy z funkcjami zwracającymi daty, Oracle Database zwraca te daty na podstawie wartości NLS_DATE_FORMAT parametr.

Istnieje również NLS_TIMESTAMP_FORMAT parametr i NLS_TIMESTAMP_TZ_FORMAT parametr, z których oba mają maskę formatu daty i czasu, którą można określić osobno.

Wszystkie te parametry mają swoje domyślne wartości pochodzące z NLS_TERRITORY parametr (który domyślnie jest zależny od systemu operacyjnego).

Sprawdź ustawienia

Możemy zapytać o V$NLS_PARAMETERS widok, aby sprawdzić aktualne wartości tych parametrów (i innych parametrów NLS):

SELECT
    PARAMETER,
    VALUE
FROM V$NLS_PARAMETERS
WHERE PARAMETER IN (
    'NLS_TERRITORY',
    'NLS_DATE_FORMAT',
    'NLS_TIMESTAMP_FORMAT',
    'NLS_TIMESTAMP_TZ_FORMAT'
    ); 

Wynik:

 WARTOŚĆ PARAMETRU __________________________ ________________________________ NLS_TERRITORY AMERYKA NLS_DATE_FORMAT DD-MON-RR NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR 
Wartość mojego NLS_TERRITORY parametr to AMERICA , a różne parametry daty i godziny używają domyślnego modelu formatu dla tego terytorium.

Te wartości wpływają na formatowanie daty, gdy używamy niektórych funkcji. Na przykład, oto przykład użycia SYSDATE aby zwrócić aktualną datę:

SELECT SYSDATE
FROM DUAL; 

Wynik:

09-sierpień-21

W razie potrzeby możemy zmienić wartość parametrów NLS w zakresie sesji. Zobacz Jak zmienić format daty w sesji Oracle, aby zapoznać się z przykładami.

Inne parametry NLS

V$NLS_PARAMETERS zawiera inne parametry oprócz wymienionych powyżej. Oto przykład zwracania wszystkich wierszy i kolumn w widoku:

SELECT *
FROM V$NLS_PARAMETERS; 

Wynik:

 PARAMETER VALUE CON_ID __________________________ _______________________________ _________ NLS_LANGUAGE AMERICAN 3 NLS_TERRITORY AMERICA 3 NLS_CURRENCY $ 3 NLS_ISO_CURRENCY AMERICA 3 NLS_NUMERIC_CHARACTERS ., 3 NLS_CALENDAR GREGORIAN 3 NLS_DATE_FORMAT DD-MON-RR 3 NLS_DATE_LANGUAGE AMERICAN 3 NLS_CHARACTERSET AL32UTF8 3 NLS_SORT BINARY 3 NLS_TIME_FORMAT HH.MI.SSXFF AM 3 NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM 3 NLS_TIME_TZ_FORMAT HH .MI.SSXFF AM TZR 3 NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR 3 NLS_DUAL_CURRENCY 3 $ NLS_NCHAR_CHARACTERSET AL16UTF16 3 NLS_COMP BINARY 3 NLS_LENGTH_SEMANTICS NCHARBYTE_ 3 NLS_SEV 

Istnieją również inne parametry NLS, które nie są wymienione w tym widoku (takie jak NLS_LANG , NLS_CREDIT i NLS_DEBIT ), ale można je ustawić tylko jako zmienną środowiskową (tzn. nie w sesji).

Parametry NLS można ustawiać w różnych miejscach, takich jak na poziomie bazy danych, w pliku parametrów inicjalizacji, w zmiennych środowiskowych, na poziomie sesji, a nawet w ramach niektórych funkcji. Każdy z nich ma z góry określony priorytet w stosunku do pozostałych.

Wartości w zakresie sesji (jak opisano w tym artykule) zastępują wszystkie inne zakresy, z wyjątkiem przypadków, gdy jest to jawnie określone jako argument podczas wywoływania funkcji.

Zobacz Metody ustawiania parametrów NLS i ich priorytety, aby zapoznać się z tabelą przedstawiającą kolejność, jaką każdy zakres ma w stosunku do innych.

Zobacz także Jak sprawdzić wartości parametrów NLS, który obejmuje różne widoki, których można użyć do zwrócenia wartości z każdego zakresu.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. słaba wydajność Hibernate select w porównaniu do bezpośredniego uruchamiania - jak debugować?

  2. 2 sposoby na uzyskanie minut z wartości daty i godziny w bazie danych Oracle

  3. Funkcja LENGTH() w Oracle

  4. Funkcja ATAN2() w Oracle

  5. Instalowanie oprogramowania Oracle Fusion Middleware / WebLogic Server 11g