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