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