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.