🧚 ¡Oye! Beekeeper Studio es una GUI de bases de datos rápida, moderna y de código abierto Descarga
19 de febrero de 2024 Por Matthew Rathbone

Introducción

Cuando trabajas con bases de datos SQL, incluida PostgreSQL, manipular y consultar datos de fecha y hora es una habilidad fundamental. Muchas veces, las aplicaciones requieren análisis o reportes enfocados en los días hábiles, excluyendo los fines de semana. En este tutorial verás cómo seleccionar registros solo de días hábiles usando las funciones de fecha y hora de PostgreSQL.

Cómo funcionan la fecha y la hora en PostgreSQL

PostgreSQL ofrece un conjunto completo de funciones y operadores para trabajar con fechas y horas, lo que facilita hacer consultas complejas, como seleccionar filas según el día de la semana.

Tipos de datos de fecha/hora

Antes de consultar días hábiles, conviene conocer los principales tipos de datos de fecha/hora en PostgreSQL:

  • DATE: para fechas (año, mes, día).
  • TIMESTAMP: para fecha y hora, sin zona horaria.
  • TIMESTAMPTZ: para fecha y hora, con zona horaria.
  • TIME: solo para la hora, sin zona horaria.
  • TIMETZ: solo para la hora, con zona horaria.

La función EXTRACT

Una función clave para trabajar con días de la semana es EXTRACT. Te permite extraer partes de un valor de fecha/hora, como el día de la semana.

Consultar solo días hábiles

Para seleccionar registros que caen en días hábiles (de lunes a viernes), puedes usar la función EXTRACT para obtener el día de la semana de una fecha, donde el domingo es 0 y el sábado es 6.

Selección básica de días hábiles

Así puedes filtrar las filas para incluir solo días hábiles:

-- Assuming a table 'events' with a 'date' column
SELECT *
FROM events
WHERE EXTRACT(DOW FROM date) BETWEEN 1 AND 5;

Esta consulta selecciona las filas de la tabla events donde el día de la semana de la columna date está entre 1 (lunes) y 5 (viernes), inclusive.

Resultado:

id date event_name
1 2024-03-04 Lanzamiento del proyecto
2 2024-03-05 Junta de equipo

Escenarios complejos: unir tablas y filtrar por días hábiles

Veamos un ejemplo más complejo en el que necesitas unir tablas y aun así filtrar por días hábiles.

-- Assuming another table 'event_details' that references 'events'
SELECT e.*, ed.detail
FROM events e
JOIN event_details ed ON e.id = ed.event_id
WHERE EXTRACT(DOW FROM e.date) BETWEEN 1 AND 5;

Esta consulta no solo filtra los eventos por días hábiles, sino que también hace un join con la tabla event_details para obtener datos relacionados.

Resultado:

id date event_name detail
1 2024-03-04 Lanzamiento del proyecto Junta de arranque
2 2024-03-05 Junta de equipo Revisión mensual

Casos de uso

Análisis de horas trabajadas

Para las empresas que registran horas de trabajo, excluir los fines de semana puede dar información valiosa sobre productividad y costos laborales.

-- Assuming a table 'work_hours' with 'employee_id', 'date', and 'hours_worked'
SELECT employee_id, SUM(hours_worked) AS total_hours
FROM work_hours
WHERE EXTRACT(DOW FROM date) BETWEEN 1 AND 5
GROUP BY employee_id;

Esta consulta calcula el total de horas trabajadas por cada empleado en días hábiles.

Resultado:

employee_id total_hours
101 40
102 38

Planeación de eventos

Para quienes organizan eventos, enfocarse en días hábiles ayuda a organizar y agendar eventos de forma más eficiente.

-- Finding available event dates during weekdays
SELECT date
FROM events
WHERE EXTRACT(DOW FROM date) BETWEEN 1 AND 5
AND date > CURRENT_DATE
ORDER BY date;

Esto ayuda a identificar las próximas fechas hábiles para planear eventos futuros.

Resultado:

date
2024-03-06
2024-03-07

Conclusión

Seleccionar registros según los días hábiles en PostgreSQL es una técnica útil para el análisis de datos y la lógica de aplicaciones. Aprovechando las funciones de fecha y hora de PostgreSQL, sobre todo EXTRACT, puedes filtrar datos fácilmente según tus necesidades. Ya sea que analices operaciones de negocio, planees eventos o simplemente administres horarios, saber consultar días hábiles mejorará tus habilidades con bases de datos.

Practica con estos ejemplos, explora la documentación de PostgreSQL para conocer más funciones de fecha/hora y saca más provecho de tus datos.

¡Felices consultas!

Beekeeper Studio es un cliente de bases de datos gratuito y de código abierto

La mejor herramienta de consultas y edición de SQL que he usado. Tiene todo lo que necesito para administrar mi base de datos. - ⭐⭐⭐⭐⭐ Mit

Beekeeper Studio es rápido, intuitivo y fácil de usar. Es compatible con muchísimas bases de datos y funciona de maravilla en Windows, Mac y Linux.

La versión de Beekeeper para Linux tiene el 100% de las funciones, sin recortes ni concesiones.

Lo que dicen los usuarios de Beekeeper Studio

★★★★★
"Beekeeper Studio reemplazó por completo mi antiguo flujo de trabajo con SQL. Es rápido, intuitivo y hace que trabajar con bases de datos vuelva a ser agradable."
— Alex K., desarrollador de bases de datos
★★★★★
"He probado muchas GUI de bases de datos, pero Beekeeper logra el equilibrio perfecto entre funciones y sencillez. Simplemente funciona."
— Sarah M., ingeniera full stack

¿Listo para mejorar tu flujo de trabajo con SQL?

download Descarga gratis