La función EXTRACT en PostgreSQL es una herramienta fundamental 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 ideal para desglosar marcas temporales y utilizarlas en cálculos, reportes o filtros más detallados. Gracias a su flexibilidad, puedes obtener información precisa de cualquier campo temporal en tus consultas.
Como parte de las funciones de fecha en PostgreSQL, EXTRACT es ampliamente utilizada en aplicaciones donde los datos cronológicos juegan un papel clave. Por ejemplo, puedes usarla para analizar tendencias por años, filtrar registros por meses o incluso calcular la diferencia en segundos entre dos eventos.
En este artículo, primero exploraremos la sintaxis básica de EXTRACT, y luego te mostraré ejemplos prácticos que ilustran cómo implementarla de manera efectiva en distintos escenarios de uso.
Para más información, puedes consultar la documentación oficial de la función EXTRACT en PostgreSQL.
Podemos indicar las siguientes partes de una fecha y hora en esta función:
Campo | Descripción |
---|---|
century | siglo |
decade | decada |
year | año |
quarter | trimestre del año |
month | mes |
week | semana (ISO) |
day | día |
hour | hora |
minute | minuto |
second | segundo |
microseconds | microsegundo |
milliseconds | milisegundos |
dow | día de la semana (0-6) |
doy | día del año |
epoch | numero de segundos |
isodow | día de la semana (ISO) |
isoyear | año (ISO) |
Sintaxis
La sintaxis para utilizar la función EXTRACT en PostgreSQL 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. Tiene que ser de tipo TIMESTAMP o INTERVAL. Si se le especifica un valor de tipo DATE, automáticamente se convertirá en TIMESTAMP.
Ejemplo
Extraer de un TIMESTAMP
SELECT EXTRACT(YEAR FROM TIMESTAMP '1986-09-26 15:30:00');
![Función EXTRACT en PostgreSQL](https://www.migueltroyano.com/wp-content/uploads/2021/12/postgresql_funcion_extract.png)
Extraer de un INTERVAL
SELECT EXTRACT(YEAR FROM INTERVAL '20 years 5 months 7 days 1 hours 1 minutes 1 second' );
![](https://www.migueltroyano.com/wp-content/uploads/2021/12/postgresql_funcion_extract_interval.png)