Saltar al contenido principal
Documentos
FuncionesExpresionesKeywordsDeclaracionesCláusulas

Función EXTRACT() de MySQL

La función `EXTRACT()` de MySQL se utiliza para recuperar una parte concreta de un valor de fecha u hora. Permite extraer fácilmente componentes como año, mes, día, hora y más a partir de expresiones de fecha u hora. Forma parte de la norma SQL, por lo que es aplicable a distintos sistemas SQL.

Utilización

La función `EXTRACT()` se utiliza normalmente cuando necesitas aislar un segmento concreto de una fecha u hora con fines de filtrado, cálculo o visualización. Simplifica el proceso de descomponer valores fecha-hora complejos en sus componentes individuales.

EXTRACT(unit FROM date)

En esta sintaxis, `unidad` especifica la parte de la fecha u hora que hay que extraer (por ejemplo, `AÑO`, `MES`, `DÍA`, `HORA`, `MINUTO`, `SEGUNDO`, `CUARTO`, `SEMANA`, `AÑO`), y `fecha` es la expresión de fecha u hora que hay que extraer.

Ejemplos

1. Extraer el año

SELECT EXTRACT(YEAR FROM '2023-10-15') AS year;

Este ejemplo extrae el año (`2023`) de la fecha dada, lo que puede ser útil en situaciones como la generación de informes anuales.

2. Extraer el mes

SELECT EXTRACT(MONTH FROM order_date) AS order_month
FROM orders;

Aquí, el mes se extrae de la columna `fecha_pedido` de la tabla `pedidos`, lo que permite un análisis mensual de los pedidos y las tendencias.

3. Extraer el día de una marca de tiempo

SELECT EXTRACT(DAY FROM '2023-10-15 14:35:29') AS day;

Este ejemplo extrae el día (`15`) de una marca de tiempo completa, demostrando cómo separar los componentes de fecha de formatos de fecha-hora mixtos para un análisis diario detallado.

Consejos y buenas prácticas

  • Elige la unidad correcta. Asegúrate de que la "unidad" que especifiques (por ejemplo, "AÑO", "MES") coincide con el componente que necesitas para obtener resultados precisos.
  • Utilízalo en el filtrado. Combina `EXTRACT()` con cláusulas `WHERE` para filtrar datos basándote en componentes de fecha específicos.
  • Optimiza las consultas. Utiliza `EXTRACT()` en columnas indexadas para mejorar el rendimiento.
  • Ten en cuenta las zonas horarias. Ten en cuenta las diferencias de zona horaria al extraer componentes de valores de marca de tiempo para garantizar la coherencia.
  • Tratamiento de fechas no válidas. Ten cuidado con las entradas de fecha u hora no válidas, ya que `EXTRACT()` puede devolver un NULL o provocar un error, afectando a los resultados de la consulta.

Perfeccionamiento de SQL para principiantes

Adquiere los conocimientos de SQL para interactuar con tus datos y consultarlos.
Empieza a aprender gratis