Oracle
 sql >> Database >  >> RDS >> Oracle

2 funzioni per ottenere l'anno da una data in Oracle

Di seguito sono elencate due funzioni che possono essere utilizzate per estrarre l'anno da una data in Oracle Database.

Il EXTRACT() Funzione

Puoi usare EXTRACT(datetime) funzione per estrarre varie parti datetime da un valore datetime. Questo include l'anno.

Ecco un esempio:

SELECT EXTRACT(YEAR FROM DATE '2030-12-25')
FROM DUAL;

Risultato:

2030

È il YEAR parola chiave che estrae la parte dell'anno dalla data. Possiamo ottenere altre parti della data modificandola con la parola chiave pertinente. Ad esempio, MONTH , DAY , HOUR , MINUTE , ecc.

Possiamo anche usare la funzione con altri valori datetime, come TIMESTAMP , ecc.

La funzione può essere utilizzata anche per restituire l'anno da un intervallo. Vedi EXTRACT(datetime) Funzione in Oracle per un esempio.

Il TO_CHAR(datetime) Funzione

Possiamo anche usare il TO_CHAR(datetime) funziona come metodo alternativo per ottenere l'anno da una data.

Questa funzione accetta il valore datetime o intervallo come primo argomento e un modello di formato come secondo argomento. La funzione converte quindi il valore in un tipo di dati di VARCHAR2 nel formato specificato.

Il modello di formato specifica il formato per il quale restituire il valore datetime/intervallo. Il modello di formato è costituito da uno o più elementi di formato. Questo ci consente di elaborare con cura i risultati per riflettere il formato desiderato.

Se vogliamo restituire solo l'anno, possiamo utilizzare il YYYY elemento di formato:

SELECT TO_CHAR(DATE '2027-10-03', 'YYYY')
FROM DUAL;

Risultato:

2027

Possiamo anche utilizzare alternative per il modello di formato. Ad esempio, possiamo usare YY per specificare un anno a due cifre:

SELECT TO_CHAR(DATE '2027-10-03', 'YY')
FROM DUAL;

Risultato:

27

In effetti, possiamo avere da uno a quattro Y caratteri, a seconda delle nostre esigenze:

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;

Risultato:

   Y    YY    YYY    YYYY 
____ _____ ______ _______ 
7    27    027    2027   

Includi una virgola

Possiamo usare il Y,YYY format element se vogliamo includere una virgola nell'output:

SELECT TO_CHAR(DATE '2027-10-03', 'Y,YYY')
FROM DUAL;

Risultato:

2,027

Spiega l'anno

Possiamo anche usare il YEAR elemento di formato per restituire l'anno esplicitato:

SELECT TO_CHAR(DATE '2027-10-03', 'YEAR')
FROM DUAL;

Risultato:

TWENTY TWENTY-SEVEN

Date BC

Possiamo anche soddisfare le date BC anteponendo al nostro elemento del formato anno una S . In questo modo, antepone al risultato un segno meno, a seconda dei casi:

SELECT 
    TO_CHAR(DATE '-250-10-03', 'SYYYY') AS SYYYY,
    TO_CHAR(DATE '-250-10-03', 'SYEAR') AS SYEAR
FROM DUAL;

Risultato:

   SYYYY         SYEAR 
________ _____________ 
-0250    -TWO FIFTY   

Possiamo in alternativa utilizzare il BC o il B.C. elementi di formato per soddisfare le date 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;

Risultato:

      YYYY            YEAR       YYYY            YEAR 
__________ _______________ __________ _______________ 
0250 BC    TWO FIFTY BC    0250 AD    TWO FIFTY AD