DÍA 30Fechas y funciones de ventana · SQL para Análisis de Datos

Incluye el inicio y excluye el límite siguiente para cubrir periodos completos.

Día 30 18 minIntermedio

Filtrar periodos con intervalos de fechas

Objetivos

Al terminar podrás seleccionar un periodo completo sin asumir que una fecha contiene solo medianoche.

Concepto

Una columna DATETIME o TIMESTAMP puede incluir hora, minuto y segundo. Para un mes, usa el primer instante del mes como límite incluido y el primer instante del mes siguiente como límite excluido.

La forma >= inicio AND < siguiente_inicio evita depender de una hora final como 23:59:59, que podría dejar fuera una fracción de segundo. Cambia ambas fechas al periodo que quieras estudiar.

Ejemplo

SELECT payment_id, payment_date, amount
FROM payment
WHERE payment_date >= '2005-05-01'
  AND payment_date < '2005-06-01'
ORDER BY payment_date, payment_id
LIMIT 10;

Se incluyen todas las horas del 1 de mayo y se excluye exactamente el inicio de junio. Este ejemplo se limita a diez filas para inspección; quita LIMIT si necesitas exportar todo el periodo.

Práctica guiada

  1. Cambia el intervalo a junio de 2005: usa el 1 de julio como límite excluido.
  2. Sustituye < por <= y explica qué pasaría con una fila exactamente en el límite.
  3. Añade un conteo para conocer cuántas filas pasan el filtro sin mostrar detalles.

Reto

Escribe un filtro para todo el año 2005. Incluye el 1 de enero y excluye el inicio de 2006. Verifica una fila de inicio y una de cierre antes de resumirla.

Quiz

¿Por qué se usa < '2005-06-01' para cerrar mayo?

  • A. Para excluir el primer instante de junio y mantener todas las horas de mayo.
  • B. Para excluir el día completo 31 de mayo.
  • C. Para convertir la fecha en texto.

Respuesta: A. El límite exclusivo hace que el intervalo cubra mayo completo, incluso con fracciones de segundo.

Comprobación

Ya filtras un intervalo sin inventar una hora final. La siguiente lección agrupa fechas y explica qué periodos no aparecen en los datos.

TU PROGRESO

Cargando estado…