Abaixo estão duas funções que podem ser usadas para extrair o ano de uma data no Oracle Database.
O EXTRACT()
Função
Você pode usar o
EXTRACT(datetime)
função para extrair várias partes de data e hora de um valor de data e hora. Isso inclui o ano. Aqui está um exemplo:
SELECT EXTRACT(YEAR FROM DATE '2030-12-25')
FROM DUAL;
Resultado:
2030
É o
YEAR
palavra-chave que extrai a parte do ano da data. Podemos obter outras partes da data alterando-a para a palavra-chave relevante. Por exemplo, MONTH
, DAY
, HOUR
, MINUTE
, etc Também podemos usar a função com outros valores de data e hora, como
TIMESTAMP
, etc A função também pode ser usada para retornar o ano de um intervalo. Veja
EXTRACT(datetime)
Função no Oracle para um exemplo. O TO_CHAR(datetime)
Função
Também podemos usar o
TO_CHAR(datetime)
funcionam como um método alternativo para obter o ano a partir de uma data. Esta função aceita o valor datetime ou intervalo 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 ano, podemos usar o
YYYY
elemento de formato:SELECT TO_CHAR(DATE '2027-10-03', 'YYYY')
FROM DUAL;
Resultado:
2027
Também podemos usar alternativas para o modelo de formato. Por exemplo, podemos usar
YY
para especificar um ano de dois dígitos:SELECT TO_CHAR(DATE '2027-10-03', 'YY')
FROM DUAL;
Resultado:
27
Na verdade, podemos ter entre um e quatro
Y
caracteres, dependendo de nossos requisitos:SELECT
TO_CHAR(DATE '2027-10-03', 'Y') AS Y,
TO_CHAR(DATE '2027-10-03', 'YY') AS YY,
TO_CHAR(DATE '2027-10-03', 'YYY') AS YYY,
TO_CHAR(DATE '2027-10-03', 'YYYY') AS YYYY
FROM DUAL;
Resultado:
Y YY YYY YYYY ____ _____ ______ _______ 7 27 027 2027
Incluir uma vírgula
Podemos usar o
Y,YYY
elemento de formato se quisermos incluir uma vírgula na saída:SELECT TO_CHAR(DATE '2027-10-03', 'Y,YYY')
FROM DUAL;
Resultado:
2,027
Soletre o ano
Podemos até usar o
YEAR
elemento de formato para retornar o ano escrito:SELECT TO_CHAR(DATE '2027-10-03', 'YEAR')
FROM DUAL;
Resultado:
TWENTY TWENTY-SEVEN
Datas BC
Também podemos atender a datas BC prefixando nosso elemento de formato de ano com um
S
. Fazendo isso, prefixa o resultado com um sinal de menos, conforme aplicável:SELECT
TO_CHAR(DATE '-250-10-03', 'SYYYY') AS SYYYY,
TO_CHAR(DATE '-250-10-03', 'SYEAR') AS SYEAR
FROM DUAL;
Resultado:
SYYYY SYEAR ________ _____________ -0250 -TWO FIFTY
Podemos alternativamente usar o BC ou B.C. elementos de formato para atender a datas BC:
SELECT
TO_CHAR(DATE '-250-10-03', 'YYYY BC') AS YYYY,
TO_CHAR(DATE '-250-10-03', 'YEAR BC') AS YEAR,
TO_CHAR(DATE '250-10-03', 'YYYY BC') AS YYYY,
TO_CHAR(DATE '250-10-03', 'YEAR BC') AS YEAR
FROM DUAL;
Resultado:
YYYY YEAR YYYY YEAR __________ _______________ __________ _______________ 0250 BC TWO FIFTY BC 0250 AD TWO FIFTY AD