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

Cómo obtener el nombre del día de una fecha en Oracle

Con Oracle Database, podemos usar el TO_CHAR(datetime) para devolver un valor de fecha y hora, con el formato que especifiquemos.

Podemos usar esta función para devolver el nombre del día de una fecha (así como cualquier otra parte del valor de fecha y hora).

Nombre completo del día

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

Para obtener el nombre completo del día, el DAY elemento de formato hace el truco:

SELECT TO_CHAR(DATE '2037-10-03', 'DAY')
FROM DUAL;

Resultado:

SATURDAY

Nombre de día corto

Para obtener el nombre del día abreviado, use DY :

SELECT TO_CHAR(DATE '2037-10-03', 'DY')
FROM DUAL;

Resultado:

SAT

Capitalización

Podemos usar mayúsculas si lo deseamos. Esto determina la capitalización de la salida:

SELECT 
    TO_CHAR(DATE '2037-10-03', 'Day') AS "Day",
    TO_CHAR(DATE '2037-10-03', 'day') AS "day",
    TO_CHAR(DATE '2037-10-03', 'Dy') AS "Dy",
    TO_CHAR(DATE '2037-10-03', 'dy') AS "dy"
FROM DUAL;

Resultado:

         Day          day     Dy     dy 
____________ ____________ ______ ______ 
Saturday     saturday     Sat    sat    

Idioma

El idioma del nombre del día se determina explícitamente con 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, establecer el NLS_DATE_LANGUAGE el parámetro no cambia el valor de el NLS_LANGUAGE parámetro. Esto nos permite especificar un idioma diferente para elementos de formato que devuelven valores escritos, si es necesario.

Este es un ejemplo de cómo configurar el NLS_DATE_LANGUAGE parámetro a un idioma diferente:

ALTER SESSION SET NLS_DATE_LANGUAGE = 'GERMAN';

Resultado:

Session altered.

Ahora, cuando devolvemos el nombre del día de una fecha, se devuelve en el idioma que acabamos de especificar:

SELECT 
    TO_CHAR(DATE '2037-10-03', 'DAY') AS "Full Day Name",
    TO_CHAR(DATE '2037-10-03', 'DY') AS "Short Day Name"
FROM DUAL;

Resultado:

   Full Day Name    Short Day Name 
________________ _________________ 
SAMSTAG          SA               

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', 
        'Day', 
        'NLS_DATE_LANGUAGE = Spanish' 
    )
FROM DUAL;

Resultado:

Sábado

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.