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

2 funções para obter o ano de uma data no Oracle


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