Oracle
 sql >> база данни >  >> RDS >> Oracle

2 функции за получаване на годината от дата в Oracle

По-долу са изброени две функции, които могат да се използват за извличане на годината от дата в 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   

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Групово вмъкване в базата данни на Oracle:Кое е по-добре:цикъл FOR Cursor или обикновен Select?

  2. има ли функция PRODUCT, както има функция SUM в Oracle SQL?

  3. Внедряване на оптимистично заключване в Oracle

  4. Функция LTRIM() в Oracle

  5. Трябва да подредите имената на служителите според техния град в колоната