sql >> Base de Datos >  >> RDS >> Oracle

Función EXTRACTO (fecha y hora) en Oracle

En Oracle Database, el EXTRACT(datetime) La función extrae y devuelve el valor de un campo de fecha y hora especificado de una expresión de fecha y hora o de intervalo.

Sintaxis

La sintaxis es así:

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

Donde expr es cualquier expresión que se evalúe como un tipo de datos de intervalo o fecha y hora compatible con el campo solicitado.

El expr el argumento se trata como un tipo de datos de fecha y hora ANSI.

Ejemplo 1

Aquí hay un ejemplo para demostrar la función:

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

Resultado:

2027

Ejemplo 2

Aquí hay un ejemplo que extrae los segundos y microsegundos de un TIMESTAMP valor:

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

Resultado:

57.98321

Intervalos

Aquí hay un ejemplo que extrae el año de un literal de intervalo:

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

Resultado:

25

Intento de extraer el campo incorrecto

Esto es lo que sucede cuando tratamos de extraer un campo que no existe en el valor especificado:

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

Resultado:

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:

No todas las partes de la fecha se pueden extraer de todos los tipos de datos. Consulte la documentación de Oracle para conocer las partes de fecha aceptadas para cada tipo de datos determinado.