Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

2 maneiras de obter o dia de uma data no Oracle


Abaixo estão duas funções que podem ser usadas para retornar o dia de uma data no Oracle Database.

O EXTRACT() Função


O EXTRACT(datetime) A função é usada para extrair várias partes de data e hora de um valor de data e hora. Isso inclui o dia.

Aqui está um exemplo:
SELECT EXTRACT(DAY FROM DATE '2037-10-25')
FROM DUAL;

Resultado:
25

É o DAY palavra-chave que extrai a parte do dia da data. Podemos obter outras partes da data alterando-a para a palavra-chave relevante. Por exemplo, YEAR , MONTH , HOUR , MINUTE , etc

Também podemos usar a função com outros valores de data e hora, como TIMESTAMP , etc

O TO_CHAR(datetime) Função


Também podemos usar o TO_CHAR(datetime) funcionam como um método alternativo para obter o dia a partir de uma data.

Esta função aceita o valor datetime ou interval como seu primeiro argumento e um modelo de formato como seu segundo argumento. A função então converte o valor para um tipo de dados de VARCHAR2 no formato especificado.

O modelo de formato especifica o formato para o qual retornar o valor de data/hora/intervalo. O modelo de formato consiste em um ou mais elementos de formato. Isso nos permite elaborar cuidadosamente os resultados para refletir o formato desejado.

Se quisermos apenas retornar o dia, podemos usar um dos elementos de formato para extrair o dia.

Dia do mês


Para obter o dia do mês (entre 1-31), use o DD elemento de formato:
SELECT TO_CHAR(DATE '2037-10-03', 'DD')
FROM DUAL;

Resultado:
03

Nome do dia completo


Para obter o nome completo do dia, use DAY :
SELECT TO_CHAR(DATE '2037-10-03', 'DAY')
FROM DUAL;

Resultado:
SATURDAY

Nome do dia abreviado


Para obter o nome do dia abreviado, use DY :
SELECT TO_CHAR(DATE '2037-10-03', 'DY')
FROM DUAL;

Resultado:
SAT

Dia do ano


Para obter o dia do ano (entre 1-366), use o DDD elemento de formato:
SELECT TO_CHAR(DATE '2037-10-03', 'DDD')
FROM DUAL;

Resultado:
276

Dia da semana


Para obter o dia da semana (entre 1-7), use o D elemento de formato:
SELECT TO_CHAR(DATE '2037-10-03', 'D')
FROM DUAL;

Resultado:
6

Esse elemento de formato depende do território NLS da sessão. O valor de o NLS_TERRITORY do meu sistema parâmetro é AUSTRALIA , e, portanto, o sábado é considerado o sexto dia da semana.

Veja o que acontece se eu alterar o valor do meu NLS_TERRITORY parâmetro para AMERICA e execute a mesma consulta novamente:
ALTER SESSION SET NLS_TERRITORY = 'AMERICA';
SELECT TO_CHAR(DATE '2037-10-03', 'D')
FROM DUAL;

Resultado:
7

Desta vez, o sábado é considerado o sétimo dia da semana.