Poniżej znajdują się dwie funkcje, których można użyć do wyodrębnienia roku z daty w bazie danych Oracle.
EXTRACT() Funkcja
Możesz użyć EXTRACT(datetime) funkcja wyodrębniania różnych części daty i godziny z wartości daty i godziny. Obejmuje to rok.
Oto przykład:
SELECT EXTRACT(YEAR FROM DATE '2030-12-25')
FROM DUAL; Wynik:
2030
To YEAR słowo kluczowe, które wyodrębnia część roku z daty. Możemy uzyskać inne części daty, zmieniając je na odpowiednie słowo kluczowe. Na przykład MONTH , DAY , HOUR , MINUTE itp.
Możemy również użyć funkcji z innymi wartościami datetime, takimi jak TIMESTAMP itp.
Funkcji można również użyć do zwrócenia roku z przedziału. Zobacz EXTRACT(datetime) Przykład funkcji w Oracle.
TO_CHAR(datetime) Funkcja
Możemy również użyć TO_CHAR(datetime) funkcjonować jako alternatywna metoda, aby uzyskać rok od daty.
Ta funkcja przyjmuje datę i godzinę lub wartość interwału jako swój pierwszy argument, a model formatu jako drugi argument. Funkcja następnie konwertuje wartość na typ danych VARCHAR2 w określonym formacie.
Model formatu określa format, dla którego ma zostać zwrócona wartość daty/godziny/interwału. Model formatu składa się z jednego lub więcej elementów formatu . Dzięki temu możemy starannie opracować wyniki, aby odzwierciedlić nasz pożądany format.
Jeśli chcemy zwrócić tylko rok, możemy użyć YYYY element formatu:
SELECT TO_CHAR(DATE '2027-10-03', 'YYYY')
FROM DUAL; Wynik:
2,027
Możemy również zastosować alternatywy dla modelu formatu. Na przykład możemy użyć YY określić dwucyfrowy rok:
SELECT TO_CHAR(DATE '2027-10-03', 'YY')
FROM DUAL; Wynik:
27
W rzeczywistości możemy mieć od jednego do czterech Y znaków, w zależności od naszych wymagań:
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; Wynik:
Y YY YYY YYYY ____ _____ ______ _______ 7 27 027 2027
Dołącz przecinek
Możemy użyć Y,YYY element format, jeśli chcemy umieścić przecinek w wyniku:
SELECT TO_CHAR(DATE '2027-10-03', 'Y,YYY')
FROM DUAL; Wynik:
2,027
Przeliteruj rok
Możemy nawet użyć YEAR element formatu do zwrócenia podanego roku:
SELECT TO_CHAR(DATE '2027-10-03', 'YEAR')
FROM DUAL; Wynik:
TWENTY TWENTY-SEVEN
Daty BC
Możemy również zadbać o daty BC, poprzedzając nasz element formatu roku przedrostkiem S . W ten sposób poprzedź wynik znakiem minus, jeśli ma to zastosowanie:
SELECT
TO_CHAR(DATE '-250-10-03', 'SYYYY') AS SYYYY,
TO_CHAR(DATE '-250-10-03', 'SYEAR') AS SYEAR
FROM DUAL; Wynik:
SYYYY SYEAR ________ _____________ -0250 -TWO FIFTY
Alternatywnie możemy użyć BC lub BC. elementy formatu do obsługi dat 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; Wynik:
YYYY YEAR YYYY YEAR __________ _______________ __________ _______________ 0250 BC TWO FIFTY BC 0250 AD TWO FIFTY AD