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

Cómo obtener el nombre del mes de una fecha en Oracle

En Oracle Database, el TO_CHAR(datetime) nos permite devolver un valor de fecha y hora, con el formato que especifiquemos.

Una de las cosas que podemos hacer es devolver el nombre del mes de una fecha.

Nombre completo del mes

Cuando se trata de devolver el nombre del mes de una fecha, tenemos la opción de obtener el nombre completo del mes o su versión abreviada.

Para obtener el nombre completo del mes, use MONTH elemento de formato:

SELECT TO_CHAR(DATE '2035-10-03', 'MONTH')
FROM DUAL;

Resultado:

OCTOBER

Nombre de mes corto

Para obtener el nombre del mes abreviado, use MON :

SELECT TO_CHAR(DATE '2035-10-03', 'MON')
FROM DUAL;

Resultado:

OCT

Capitalización

Podemos usar mayúsculas para determinar la capitalización de la salida:

SELECT 
    TO_CHAR(DATE '2035-10-03', 'Month') AS "Month",
    TO_CHAR(DATE '2035-10-03', 'month') AS "month",
    TO_CHAR(DATE '2035-10-03', 'Mon') AS "Mon",
    TO_CHAR(DATE '2035-10-03', 'mon') AS "mon"
FROM DUAL;

Resultado:

       Month        month    Mon    mon 
____________ ____________ ______ ______ 
October      october      Oct    oct   

Idioma

El idioma del nombre del mes se determina explícitamente con el NLS_DATE_LANGUAGE parámetro de inicialización o implícitamente con el NLS_LANGUAGE parámetro de inicialización.

Podemos establecer explícitamente el valor de NLS_LANGUAGE parámetro con ALTER SESSION declaración. Cuando hacemos esto, también establece implícitamente el valor de NLS_DATE_LANGUAGE parámetro.

Sin embargo, configurar el NLS_DATE_LANGUAGE el parámetro no cambia el valor de NLS_LANGUAGE parámetro. Esto nos permite especificar un idioma diferente para los elementos de formato que devuelven valores escritos, si es necesario.

Este es un ejemplo de configuración de NLS_DATE_LANGUAGE parámetro a un idioma diferente, luego obteniendo el nombre del mes nuevamente:

ALTER SESSION SET NLS_DATE_LANGUAGE = 'GERMAN';
SELECT 
    TO_CHAR(DATE '2037-10-03', 'Month') AS "Full Month Name",
    TO_CHAR(DATE '2037-10-03', 'Mon') AS "Short Month Name"
FROM DUAL;

Resultado:

   Full Month Name    Short Month Name 
__________________ ___________________ 
Oktober            Okt                

El idioma predeterminado se puede anular en el nivel de función con un tercer parámetro que especifica el idioma:

ALTER SESSION SET NLS_DATE_LANGUAGE = 'GERMAN';
SELECT 
    TO_CHAR(
        DATE '2037-10-03', 
        'Month', 
        'NLS_DATE_LANGUAGE = Spanish' 
    )
FROM DUAL;

Resultado:

Octubre

Hay muchos más elementos de formato disponibles para formatear valores de fecha y hora en Oracle. Consulte la Lista de elementos de formato de fecha y hora en Oracle para obtener una lista completa.