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

EXTRACT (datetime) Функция в Oracle

В Oracle Database, EXTRACT(datetime) функцията извлича и връща стойността на определено поле за дата и час от израз за дата и време или интервал.

Синтаксис

Синтаксисът е така:

EXTRACT( { YEAR
         | MONTH
         | DAY
         | HOUR
         | MINUTE
         | SECOND
         | TIMEZONE_HOUR
         | TIMEZONE_MINUTE
         | TIMEZONE_REGION
         | TIMEZONE_ABBR
         }
         FROM { expr }
       )

Където expr е всеки израз, който се оценява на тип данни за дата и време или интервал, съвместими със заявеното поле.

expr аргументът се третира като ANSI тип данни за дата и време.

Пример 1

Ето пример за демонстриране на функцията:

SELECT EXTRACT(YEAR FROM DATE '2027-10-03')
FROM DUAL;

Резултат:

2027

Пример 2

Ето пример, който извлича секундите и микросекундите от TIMESTAMP стойност:

SELECT 
    EXTRACT(SECOND FROM TIMESTAMP '2027-10-15 23:10:57.98321 +04:00') AS Result
FROM DUAL;

Резултат:

57.98321

Интервали

Ето пример, който извлича годината от интервален литерал:

SELECT EXTRACT(YEAR FROM INTERVAL '25-3' YEAR TO MONTH)
FROM DUAL;

Резултат:

25

Опит за извличане на грешно поле

Ето какво се случва, когато се опитаме да извлечем поле, което не съществува в посочената стойност:

SELECT 
    EXTRACT(SECOND FROM DATE '2027-10-15') AS Result
FROM DUAL;

Резултат:

Error starting at line : 1 in command -
SELECT 
    EXTRACT(SECOND FROM DATE '2027-10-15') AS Result
FROM DUAL
Error at Command Line : 2 Column : 25
Error report -
SQL Error: ORA-30076: invalid extract field for extract source
30076. 00000 -  "invalid extract field for extract source"
*Cause:    The extract source does not contain the specified extract field.
*Action:

Не всички части за дата могат да бъдат извлечени от всички типове данни. Вижте документацията на Oracle за приетите части от дата за всеки даден тип данни.


  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

  2. ORA-01618

  3. Как мога да задам персонализиран формат за дата и час в Oracle SQL Developer?

  4. Определете дали датата на Oracle е в уикенд?

  5. Има ли функция за разделяне на низ в PL/SQL?