Featured image of post Una consulta de MySQL para filtrar datos por día de la semana

Una consulta de MySQL para filtrar datos por día de la semana

Veamos como hacer una consulta para MySQL que filtre las fechas por día de la semana, puede ser un lunes, martes o domingo.

Estoy acostumbrado a hacer consultas que extraen datos entre un rango de fechas, es lo de costumbre.

Pero se me ofreció hacer una consulta que filtrara los datos por el día de la semana. Sabía que de seguro hay una forma, solo que no la conocía. Afortunadamente no es muy complicado el asunto.

Día de la semana.

Existe una función dentro del mismo MySQL que nos ayuda a averiguar el día de la semana de una fecha.

A la función DAYOFWEEK se le entrega una fecha y regresa el valor de 1 si es domingo, 2 si es lunes y así hasta llegar a el sábado con el número 7.

Dicho esto, sólo hay que agregar una condición a la cláusula WHERE.

Hice una tabla de ejemplo, que básicamente reúne todas las fechas del mes de Octubre junto con una cantidad.

Fechas

FechaCantidad
2021-10-01101
2021-10-02102
2021-10-03103
2021-10-04104
2021-10-05105
2021-10-06106
2021-10-07107
2021-10-31131

Pero ¿Cuales de estos días ocurrieron el día domingo? pues muy fácil

SELECT * FROM fechas
WHERE DAYOFWEEK(fecha)=1
ORDER BY fecha ASC;
FechaCantidad
2021-10-03103
2021-10-10110
2021-10-17117
2021-10-24124
2021-10-31131

¡Dominguito alegre!

O los sábados y domingos.

SELECT * FROM fechas
WHERE DAYOFWEEK(fecha)=1 OR
      DAYOFWEEK(fecha)=7
ORDER BY fecha ASC;

La verdad no se cuando voy a volver a utilizar este código, pero lo dejo aquí por si se le ofrece al mí mismo del futuro.

¡Hasta la próxima!

Licensed under CC BY-NC-SA 4.0
Última actualización 19 oct. 2021 1019:00 CST
Todas las imágenes, nombres de productos y nombres de empresa o logotipos citados en esta página web son propiedad de sus respectivos propietarios.
Creado con Hugo
Tema Stack diseñado por Jimmy