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

2 formas de obtener el día a partir de una fecha en Oracle

A continuación se muestran dos funciones que se pueden utilizar para devolver el día a partir de una fecha en Oracle Database.

El EXTRACT() Función

El EXTRACT(datetime) La función se utiliza para extraer varias partes de fecha y hora de un valor de fecha y hora. Esto incluye el día.

He aquí un ejemplo:

SELECT EXTRACT(DAY FROM DATE '2037-10-25')
FROM DUAL;

Resultado:

25

Es el DAY palabra clave que extrae la parte del día de la fecha. Podemos obtener otras partes de la fecha cambiándola a la palabra clave relevante. Por ejemplo, YEAR , MONTH , HOUR , MINUTE , etc.

También podemos usar la función con otros valores de fecha y hora, como TIMESTAMP , etc.

El TO_CHAR(datetime) Función

También podemos usar el TO_CHAR(datetime) funcionan como un método alternativo para obtener el día a partir de una fecha.

Esta función acepta el valor de fecha y hora o intervalo como primer argumento y un modelo de formato como segundo argumento. La función luego convierte el valor a un tipo de datos de VARCHAR2 en el formato especificado.

El modelo de formato especifica el formato para el que devolver el valor de fechahora/intervalo. El modelo de formato consta de uno o más elementos de formato . Esto nos permite diseñar cuidadosamente los resultados para reflejar nuestro formato deseado.

Si solo queremos devolver el día, podemos usar uno de los elementos de formato para extraer el día.

Día del mes

Para obtener el día del mes (entre 1 y 31), use el DD elemento de formato:

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

Resultado:

03

Nombre completo del día

Para obtener el nombre completo del día, use DAY :

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

Día del año

Para obtener el día del año (entre 1 y 366), use el DDD elemento de formato:

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

Resultado:

276

Día de la semana

Para obtener el día de la semana (entre 1 y 7), use la D elemento de formato:

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

Resultado:

6

Este elemento de formato depende del territorio NLS de la sesión. El valor de el NLS_TERRITORY de mi sistema el parámetro es AUSTRALIA , y por lo tanto, el sábado se considera el sexto día de la semana.

Esto es lo que sucede si cambio el valor de mi NLS_TERRITORY parámetro a AMERICA y ejecute la misma consulta de nuevo:

ALTER SESSION SET NLS_TERRITORY = 'AMERICA';
SELECT TO_CHAR(DATE '2037-10-03', 'D')
FROM DUAL;

Resultado:

7

Esta vez el sábado se considera el séptimo día de la semana.