Función EXTRACT en Oracle

La función EXTRACT en Oracle es una herramienta esencial para trabajar con datos temporales, ya que permite extraer partes específicas de una fecha u hora, como el año, mes, día, hora, minuto o segundo. Esta función es perfecta para desglosar marcas temporales y utilizarlas en cálculos, reportes o filtros más detallados. Su versatilidad facilita obtener información precisa de cualquier campo temporal dentro de tus consultas.

Como parte de las funciones de fecha en Oracle, EXTRACT es ampliamente empleada en aplicaciones donde los datos cronológicos tienen un rol importante. Por ejemplo, puedes usarla para analizar tendencias anuales, filtrar registros por meses o calcular diferencias en segundos entre eventos específicos.

En este artículo, exploraremos primero la sintaxis básica de EXTRACT y luego veremos ejemplos prácticos para mostrar cómo implementarla eficazmente en distintos casos de uso.

Para más información, consulta la documentación oficial de la función EXTRACT en Oracle.

Con EXTRACT, puedes especificar las siguientes partes de una fecha y hora:

TIPO DATOCAMPO DISPONIBLE
DATEyear, month, day
INTERVAL YEAR TO MONTHyear, month
INTERVAL DAY TO SECONDday, hour, minute, second
TIMESTAMPyear, month, day, hour, minute, second

Sintaxis

La sintaxis para utilizar la función EXTRACT en Oracle es la siguiente:

EXTRACT(campo FROM origen)

Esta función consta de dos argumentos obligatorios:

  • campo: parte que se quiere extraer, como por ejemplo year, day, etc.
  • origen: fecha de la que se va a extraer el primer argumento.

Ejemplo

Extraer de una fecha el año, mes y día

SELECT  EXTRACT( YEAR FROM TO_DATE( '26-SEP-1986 15:30:00 ', 'DD-Mon-YYYY HH24:MI:SS' ) ) "AÑO",
        EXTRACT( MONTH FROM TO_DATE( '26-SEP-1986 15:30:00 ', 'DD-Mon-YYYY HH24:MI:SS' ) ) MES,
        EXTRACT( DAY FROM TO_DATE( '26-SEP-1986 15:30:00 ', 'DD-Mon-YYYY HH24:MI:SS' ) ) DIA
FROM DUAL;
Extraer de una fecha el año, mes y día

Extraer hora, minuto y segundo de la fecha del sistema

SELECT
  TO_CHAR( SYSDATE, 'HH24' ) hora, 
  TO_CHAR( SYSDATE, 'MI' ) minuto,
  TO_CHAR( SYSDATE, 'SS' ) segundo
FROM DUAL;
Extraer hora, minuto y segundo de la fecha del sistema

Escribir un comentario