Nedan finns två funktioner som kan användas för att extrahera årtalet från ett datum i Oracle Database.
EXTRACT()
Funktion
Du kan använda EXTRACT(datetime)
funktion för att extrahera olika datetime-delar från ett datetime-värde. Detta inkluderar året.
Här är ett exempel:
VÄLJ EXTRAKT(ÅR FRÅN DATUM '2030-12-25')FRÅN DUBBLA;
Resultat:
2030
Det är ÅR
nyckelord som extraherar årsdelen från datumet. Vi kan få andra datumdelar genom att ändra det till det relevanta sökordet. Till exempel MÅNAD
, DAG
, HOUR
, MINUT
, etc.
Vi kan också använda funktionen med andra datetime-värden, såsom TIMESTAMP
, etc.
Funktionen kan också användas för att returnera året från ett intervall. Se EXTRACT(datetime)
Funktion i Oracle för ett exempel.
TO_CHAR(datumtid)
Funktion
Vi kan också använda den TO_CHAR(datetime)
fungera som en alternativ metod för att få årtalet från ett datum.
Den här funktionen accepterar datetime eller intervallvärdet som dess första argument och en formatmodell som dess andra argument. Funktionen konverterar sedan värdet till en datatyp VARCHAR2
i det angivna formatet.
Formatmodellen anger formatet som datum/intervallvärdet ska returneras för. Formatmodellen består av ett eller flera formatelement. Detta gör det möjligt för oss att noggrant utforma resultaten för att återspegla vårt önskade format.
Om vi bara vill returnera årtalet kan vi använda
SELECT TO_CHAR(DATE '2027-10-03', 'YYYY')FROM DUAL;
Resultat:
2027
Vi kan också använda alternativ för formatmodellen. Till exempel kan vi använda YY
för att ange ett tvåsiffrigt år:
SELECT TO_CHAR(DATE '2027-10-03', 'YY')FROM DUAL;
Resultat:
27
Faktum är att vi kan ha någonstans mellan ett och fyra Y
tecken, beroende på våra krav:
VÄLJ 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 YYYYFROM DUAL;
Resultat:
Y YY ÅÅÅ ÅÅÅÅ ____ _____ ______ _______ 7 27 027 2027
Inkludera ett komma
Vi kan använda Y,YYY
formatelement om vi vill inkludera ett kommatecken i utdata:
SELECT TO_CHAR(DATE '2027-10-03', 'Y,YYY')FROM DUAL;
Resultat:
2 027
Beskriv året
Vi kan till och med använda YEAR
formatelement för att returnera året stavat:
SELECT TO_CHAR(DATE '2027-10-03', 'YEAR')FROM DUAL;
Resultat:
TJUGU TJUGU-SJU
BC-datum
Vi kan också tillgodose BC-datum genom att prefixet vårt årsformatelement med en S
. Om du gör detta, prefixet resultatet med ett minustecken, som tillämpligt:
VÄLJ TO_CHAR(DATE '-250-10-03', 'SYYYY') AS SYYYY, TO_CHAR(DATE '-250-10-03', 'SYEAR') AS SYEARFROM DUAL;
Resultat:
SYYYY SYEAR ________ _____________ -0250 -TWO FIFTY
Vi kan alternativt använda BC eller B.C. formatelement för att tillgodose BC-datum:
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 YEARFROM DUAL;
Resultat:
ÅÅÅÅ ÅR ÅÅÅÅ ÅR __________ _______________ __________ _______________ 0250 f.Kr. TVÅ 50 f.Kr.