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.