Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да проверите формата на датата на вашата сесия на Oracle

Когато работите с функции, които връщат дати, Oracle Database връща тези дати въз основа на стойността на NLS_DATE_FORMAT параметър.

Има и NLS_TIMESTAMP_FORMAT параметър и NLS_TIMESTAMP_TZ_FORMAT параметър, като и двата имат маска за формат на дата и час, която може да се посочи отделно.

Всички тези параметри имат своите стойности по подразбиране, получени от NLS_TERRITORY параметър (който по подразбиране зависи от операционната система).

Проверете настройките

Можем да направим заявка за V$NLS_PARAMETERS преглед, за да проверите текущите стойности на тези параметри (и други NLS параметри):

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

Резултат:

 СТОЙНОСТ НА ПАРАМЕТЪР __________________________ _______________________________ NLS_TERRITORY AMERICA 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 

Стойността на моя NLS_TERRITORY параметърът е AMERICA , а различните параметри за дата и час използват модела на формат по подразбиране за тази територия.

Тези стойности влияят на това как датата е форматирана, когато използваме определени функции. Например, ето пример за използване на SYSDATE за да върнете текущата дата:

SELECT SYSDATE
FROM DUAL; 

Резултат:

09-21 август

Можем да променим стойността на NLS параметрите в обхвата на сесията, ако е необходимо. Вижте как да промените формата на датата във вашата сесия на Oracle за примери.

Други NLS параметри

V$NLS_PARAMETERS съдържа други параметри в допълнение към изброените по-горе. Ето пример за връщане на всички редове и колони в изгледа:

SELECT *
FROM V$NLS_PARAMETERS; 

Резултат:

 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 BINARY 3 NLS_LENGCSTH 3 NLS_COMP BINARY 3 NLS_LENGCSTH 3 

Има и други NLS параметри, които не са изброени в този изглед (като NLS_LANG , NLS_CREDIT и NLS_DEBIT ), но те могат да бъдат зададени само като променлива на средата (т.е. не в сесията).

NLS параметрите могат да се задават на различни места, като на ниво база данни, във файл с параметри за инициализация, в променливи на средата, на ниво сесия и дори в рамките на някои функции. Всеки от тях има предварително определен приоритет спрямо останалите.

Стойностите в обхвата на сесията (както е посочено в тази статия) отменят всички други обхвати, с изключение на случаите, когато е изрично посочен като аргумент при извикване на функция.

Вижте Методи за задаване на NLS параметри и техните приоритети за таблица, очертаваща порядъка на приоритет, който всеки обхват има спрямо останалите.

Вижте също как да проверите стойностите на параметрите на NLS, който обхваща различните изгледи, които можете да използвате, за да върнете стойностите от всеки обхват.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle 11g получава всички съвпадащи събития чрез регулярен израз

  2. Отървете се от дублиращи се стойности в една колона при избор на две колони

  3. Защо не мога да използвам променливи за свързване в DDL/SCL изрази в динамичен SQL?

  4. Защо времето за изпълнение на съхранената процедура на Oracle се увеличава значително в зависимост от това как се изпълнява?

  5. Функция ASIN() в Oracle