sql >> Base de Datos >  >> RDS >> Oracle

Cómo verificar el formato de fecha de su sesión de Oracle

Cuando se trabaja con funciones que devuelven fechas, Oracle Database devuelve estas fechas en función del valor de NLS_DATE_FORMAT parámetro.

También hay un NLS_TIMESTAMP_FORMAT parámetro y un NLS_TIMESTAMP_TZ_FORMAT parámetro, los cuales tienen una máscara de formato de fecha y hora que se puede especificar por separado.

Todos estos parámetros tienen sus valores predeterminados derivados del NLS_TERRITORY parámetro (que por defecto depende del sistema operativo).

Compruebe la configuración

Podemos consultar el V$NLS_PARAMETERS vista para verificar los valores actuales de estos parámetros (y otros parámetros NLS):

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

Resultado:

                 PARAMETER                           VALUE 
__________________________ _______________________________ 
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    

El valor de mi NLS_TERRITORY el parámetro es AMERICA y los diversos parámetros de fecha y hora usan el modelo de formato predeterminado para ese territorio.

Estos valores afectan cómo se formatea la fecha cuando usamos ciertas funciones. Por ejemplo, aquí hay un ejemplo del uso de SYSDATE para devolver la fecha actual:

SELECT SYSDATE
FROM DUAL;

Resultado:

09-AUG-21

Podemos cambiar el valor de los parámetros NLS en el alcance de la sesión si es necesario. Consulte Cómo cambiar el formato de fecha en su sesión de Oracle para ver ejemplos.

Otros parámetros NLS

Los V$NLS_PARAMETERS contiene otros parámetros además de los enumerados anteriormente. Aquí hay un ejemplo de devolver todas las filas y columnas en la vista:

SELECT *
FROM V$NLS_PARAMETERS;

Resultado:

                 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       BYTE                                    3 
NLS_NCHAR_CONV_EXCP        FALSE                                   3 

También hay otros parámetros NLS que no aparecen en esta vista (como NLS_LANG , NLS_CREDIT y NLS_DEBIT ), pero solo se pueden configurar como una variable de entorno (es decir, no en la sesión).

Los parámetros NLS se pueden configurar en varios lugares, como a nivel de base de datos, en un archivo de parámetros de inicialización, en variables de entorno, a nivel de sesión e incluso dentro de algunas funciones. Cada uno de estos tiene una prioridad predeterminada en relación con los demás.

Los valores en el ámbito de la sesión (como se describe en este artículo) anulan todos los demás ámbitos, excepto cuando se especifica explícitamente como un argumento al llamar a una función.

Consulte Métodos de configuración de parámetros NLS y sus prioridades para obtener una tabla que describe el orden de precedencia que tiene cada ámbito en relación con los demás.

Consulte también Cómo verificar los valores de los parámetros NLS, que cubre las diversas vistas que puede usar para devolver los valores de cada ámbito.