По-долу са изброени две функции, които могат да се използват за извличане на годината от дата в Oracle Database.
EXTRACT()
Функция
Можете да използвате EXTRACT(datetime)
функция за извличане на различни части за дата и време от стойност на дата и час. Това включва годината.
Ето един пример:
SELECT EXTRACT(YEAR FROM DATE '2030-12-25')
FROM DUAL;
Резултат:
2030
Това е YEAR
ключова дума, която извлича частта от годината от датата. Можем да получим други части за дата, като я променим на съответната ключова дума. Например MONTH
, DAY
, HOUR
, MINUTE
и др.
Можем да използваме функцията и с други стойности за дата и час, като TIMESTAMP
и др.
Функцията може да се използва и за връщане на годината от интервал. Вижте EXTRACT(datetime)
Функция в Oracle за пример.
TO_CHAR(datetime)
Функция
Можем също да използваме TO_CHAR(datetime)
функционират като алтернативен метод за получаване на годината от дата.
Тази функция приема датата и времето или стойността на интервала като свой първи аргумент и модел на формат като втори аргумент. След това функцията преобразува стойността в тип данни VARCHAR2
в посочения формат.
Форматният модел определя формата, за който да се върне стойността за дата и време/интервал. Форматният модел се състои от един или повече форматни елементи. Това ни позволява внимателно да изработим резултатите, за да отразяват желания от нас формат.
Ако искаме да върнем само годината, можем да използваме YYYY
форматен елемент:
SELECT TO_CHAR(DATE '2027-10-03', 'YYYY')
FROM DUAL;
Резултат:
2,027
Можем да използваме и алтернативи за модела на формата. Например, можем да използваме YY
за да посочите двуцифрена година:
SELECT TO_CHAR(DATE '2027-10-03', 'YY')
FROM DUAL;
Резултат:
27
Всъщност можем да имаме някъде между едно и четири Y
знаци, в зависимост от нашите изисквания:
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;
Резултат:
Y YY YYY YYYY ____ _____ ______ _______ 7 27 027 2027
Включете запетая
Можем да използваме Y,YYY
format елемент, ако искаме да включим запетая в изхода:
SELECT TO_CHAR(DATE '2027-10-03', 'Y,YYY')
FROM DUAL;
Резултат:
2,027
Определете годината
Можем дори да използваме YEAR
форматен елемент, за да върне изписаната година:
SELECT TO_CHAR(DATE '2027-10-03', 'YEAR')
FROM DUAL;
Резултат:
TWENTY TWENTY-SEVEN
Дати преди Христа
Можем също да се погрижим за датите преди новата ера, като поставим префикс на нашия елемент във формат за година с S
. Правейки това, поставя пред резултата знак минус, както е приложимо:
SELECT
TO_CHAR(DATE '-250-10-03', 'SYYYY') AS SYYYY,
TO_CHAR(DATE '-250-10-03', 'SYEAR') AS SYEAR
FROM DUAL;
Резултат:
SYYYY SYEAR ________ _____________ -0250 -TWO FIFTY
Алтернативно можем да използваме BC или B.C. форматни елементи, за да се погрижат за датите преди новата ера:
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;
Резултат:
YYYY YEAR YYYY YEAR __________ _______________ __________ _______________ 0250 BC TWO FIFTY BC 0250 AD TWO FIFTY AD