Oracle
 sql >> Base de données >  >> RDS >> Oracle

2 fonctions pour obtenir l'année à partir d'une date dans Oracle

Vous trouverez ci-dessous deux fonctions qui peuvent être utilisées pour extraire l'année d'une date dans Oracle Database.

Le EXTRACT() Fonction

Vous pouvez utiliser le EXTRACT(datetime) fonction pour extraire diverses parties datetime d'une valeur datetime. Cela inclut l'année.

Voici un exemple :

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

Résultat :

2030

C'est le YEAR mot-clé qui extrait la partie année de la date. Nous pouvons obtenir d'autres parties de date en les remplaçant par le mot-clé pertinent. Par exemple, MONTH , DAY , HOUR , MINUTE , etc.

Nous pouvons également utiliser la fonction avec d'autres valeurs datetime, telles que TIMESTAMP , etc.

La fonction peut également être utilisée pour renvoyer l'année à partir d'un intervalle. Voir EXTRACT(datetime) Fonction dans Oracle pour un exemple.

Le TO_CHAR(datetime) Fonction

Nous pouvons également utiliser le TO_CHAR(datetime) fonctionnent comme une méthode alternative pour obtenir l'année à partir d'une date.

Cette fonction accepte la date/heure ou la valeur d'intervalle comme premier argument, et un modèle de format comme deuxième argument. La fonction convertit ensuite la valeur en un type de données de VARCHAR2 dans le format spécifié.

Le modèle de format spécifie le format pour lequel renvoyer la valeur datetime/intervalle. Le modèle de format consiste en un ou plusieurs éléments de format . Cela nous permet d'élaborer soigneusement les résultats pour refléter le format souhaité.

Si nous ne voulons retourner que l'année, nous pouvons utiliser le YYYY élément de format :

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

Résultat :

2027

Nous pouvons également utiliser des alternatives pour le modèle de format. Par exemple, nous pouvons utiliser YY pour spécifier une année à deux chiffres :

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

Résultat :

27

En fait, nous pouvons avoir n'importe où entre un et quatre Y caractères, selon nos besoins :

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;

Résultat :

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

Inclure une virgule

Nous pouvons utiliser le Y,YYY élément de format si nous voulons inclure une virgule dans la sortie :

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

Résultat :

2,027

Épeler l'année

Nous pouvons même utiliser le YEAR élément de format pour renvoyer l'année épelée :

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

Résultat :

TWENTY TWENTY-SEVEN

Dates BC

Nous pouvons également répondre aux dates BC en préfixant notre élément de format d'année avec un S . Ce faisant, préfixe le résultat avec un signe moins, le cas échéant :

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

Résultat :

   SYYYY         SYEAR 
________ _____________ 
-0250    -TWO FIFTY   

Nous pouvons alternativement utiliser le BC ou le B.C. éléments de format pour répondre aux dates 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;

Résultat :

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