Nedenfor er to funktioner, der kan bruges til at udtrække året fra en dato i Oracle Database.
EXTRACT()
Funktion
Du kan bruge EXTRACT(datetime)
funktion til at udtrække forskellige datetime dele fra en datetime værdi. Dette inkluderer året.
Her er et eksempel:
VÆLG UDTRAKT(ÅR FRA DATO '2030-12-25') FRA DOBBELT;
Resultat:
2030
Det er ÅR
nøgleord, der udtrækker årsdelen fra datoen. Vi kan få andre datodele ved at ændre det til det relevante søgeord. For eksempel MONTH
, DAG
, TIME
, MINUTE
osv.
Vi kan også bruge funktionen med andre datetime-værdier, såsom TIMESTAMP
osv.
Funktionen kan også bruges til at returnere året fra et interval. Se EXTRACT(datetime)
Funktion i Oracle for et eksempel.
TO_CHAR(datotid)
Funktion
Vi kan også bruge TO_CHAR(datetime)
fungere som en alternativ metode til at få året fra en dato.
Denne funktion accepterer datetime eller intervalværdien som sit første argument, og en formatmodel som sit andet argument. Funktionen konverterer derefter værdien til en datatype VARCHAR2
i det angivne format.
Formatmodellen angiver det format, som dato/intervalværdien skal returneres for. Formatmodellen består af et eller flere formatelementer. Dette gør os i stand til omhyggeligt at udforme resultaterne, så de afspejler vores ønskede format.
Hvis vi kun ønsker at returnere året, kan vi bruge
VÆLG TO_CHAR(DATO '2027-10-03', 'ÅÅÅÅ')FRA DOBBELT;
Resultat:
2027
Vi kan også bruge alternativer til formatmodellen. For eksempel kan vi bruge YY
for at angive et tocifret årstal:
SELECT TO_CHAR(DATE '2027-10-03', 'YY')FROM DUAL;
Resultat:
27
Faktisk kan vi have hvor som helst mellem en og fire Y
tegn, afhængigt af vores krav:
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 YYYYFROM DUAL;
Resultat:
Y YY ÅÅÅ ÅÅÅÅ ____ _____ _____ _______ 7 27 027 2027
Inkluder et komma
Vi kan bruge Y,YYY
formatelement, hvis vi ønsker at inkludere et komma i outputtet:
SELECT TO_CHAR(DATE '2027-10-03', 'Y,YYY')FROM DUAL;
Resultat:
2.027
Beskriv året
Vi kan endda bruge YEAR
formatelement for at returnere året, der er stavet:
SELECT TO_CHAR(DATE '2027-10-03', 'YEAR')FROM DUAL;
Resultat:
TYVE SYV OG TYVE
BC Datoer
Vi kan også tage højde for BC-datoer ved at sætte et S
foran vores årstalselement . Hvis du gør dette, præfikses resultatet med et minustegn, alt efter hvad der er relevant:
VÆLG 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 bruge BC eller B.C. formatelementer for at tage højde for BC-datoer:
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. TO 50 f.Kr.