sql >> Database >  >> RDS >> Oracle

2 functies om het jaar uit een datum in Oracle te halen

Hieronder staan ​​twee functies die kunnen worden gebruikt om het jaar uit een datum in Oracle Database te halen.

De EXTRACT() Functie

U kunt de EXTRACT(datetime) . gebruiken functie om verschillende datetime-delen uit een datetime-waarde te extraheren. Dit omvat het jaar.

Hier is een voorbeeld:

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

Resultaat:

2030

Het is YEAR trefwoord dat het jaargedeelte uit de datum haalt. We kunnen andere datumdelen krijgen door deze te wijzigen in het relevante trefwoord. Bijvoorbeeld MONTH , DAY , HOUR , MINUTE , enz.

We kunnen de functie ook gebruiken met andere datetime-waarden, zoals TIMESTAMP , enz.

De functie kan ook worden gebruikt om het jaar uit een interval terug te geven. Zie EXTRACT(datetime) Functie in Oracle bijvoorbeeld.

De TO_CHAR(datetime) Functie

We kunnen ook de TO_CHAR(datetime) gebruiken functioneren als een alternatieve methode om het jaar uit een datum te halen.

Deze functie accepteert de datetime of intervalwaarde als het eerste argument, en een formaatmodel als het tweede argument. De functie converteert vervolgens de waarde naar een gegevenstype van VARCHAR2 in het gespecificeerde formaat.

Het formaatmodel specificeert het formaat waarvoor de datetime/intervalwaarde moet worden geretourneerd. Het formaatmodel bestaat uit een of meer formaatelementen. Dit stelt ons in staat om de resultaten zorgvuldig te maken om ons gewenste formaat weer te geven.

Als we alleen het jaartal willen teruggeven, kunnen we de YYYY . gebruiken formaatelement:

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

Resultaat:

2027

We kunnen ook alternatieven gebruiken voor het formaatmodel. We kunnen bijvoorbeeld YY . gebruiken om een ​​jaartal van twee cijfers op te geven:

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

Resultaat:

27

In feite kunnen we ergens tussen de één en vier Y . hebben tekens, afhankelijk van onze vereisten:

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;

Resultaat:

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

Voeg een komma toe

We kunnen de Y,YYY . gebruiken format-element als we een komma in de uitvoer willen opnemen:

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

Resultaat:

2,027

Speel het jaar uit

We kunnen zelfs de YEAR . gebruiken formaatelement om het jaartal terug te geven:

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

Resultaat:

TWENTY TWENTY-SEVEN

VK-datums

We kunnen ook rekening houden met BC-datums door ons jaarformaatelement te laten voorafgaan door een S . Als u dit doet, wordt het resultaat voorafgegaan door een minteken, indien van toepassing:

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

Resultaat:

   SYYYY         SYEAR 
________ _____________ 
-0250    -TWO FIFTY   

We kunnen als alternatief de BC of B.C. formaatelementen voor BC-datums:

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;

Resultaat:

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

  1. Hoe de LEFT()-functie werkt in MySQL

  2. Projectlinks werken niet op Wamp Server

  3. Query om alleen getallen uit een string te krijgen

  4. Hoe databasemetagegevens te verkrijgen