Seleccionar registros entre dos fechas con MySQL

Desde que empecé a trabajar con bases de datos y con programación en PHP algo a lo que siempre he tenido mucha tirria es al manejar de fechas. Con el paso del tiempo lógicamente te vas adaptando y lo que antes te costaba medio siglo ahora lo haces en un pis-pas.

Registros entre dos fechas con MySQL

En el artículo de hoy os voy a enseñar algo bastante simple pero muy útil para por ejemplo, sacar estadísticas de registros de usuarios o de ingresos de una plataforma online. Vamos a plantearnos que queremos sacar el número de usuarios registrados entre el 20 de Marzo de 2016 y el 31 de Mayo de 2016 y para ello vamos a hacer uso de la sentencia BETWEEN de MySQL:

SELECT * FROM `usuarios` WHERE fecha BETWEEN '2016-03-20' AND '2016-20-31'

Si os fijáis la consulta es bastante sencilla y lo único que tendrías que reemplazar es el nombre de la tabla y el campo donde guardamos la fecha (que podría ser reg_date, fecha_registro,etc) , además de las fechas entre las que queráis consultar siempre en el formato YYYY-MM-DD donde YYYY es el año MM el mes y DD el día.

Si quisiéramos sacar los registros de usuarios entre dos horas del día determinadas (si el campo fecha fuera un DATETIME lógicamente) solo tendríamos que modificar la consulta por:

SELECT * FROM `usuarios` WHERE fecha BETWEEN '2016-03-20 15:00:00' AND '2016-03-20 18:00:00'

La sentencia BETWEEN no solo es aplicable a fechas si no que la podréis aplicar a otro tipo de rangos por ejemplo entre dos números.

Espero que os sirva este pequeño tip el cual es bastante útil.

7 comentarios en “Seleccionar registros entre dos fechas con MySQL”

  1. José María Muñoz Polonio

    Hola:

    ¿Por qué no me funciona lo siguiente?

    $buscar = «SELECT * FROM `movies` WHERE `year` BETWEEN ‘$nom1’ AND ‘$nom2′»;

    Es una base de datos de películas y quiero que en el buscador te busque los títulos que hay entre los años $nom1 y $nom2 (seleccionados por el usuario).

    Gracias

  2. Hola Juan gracias por la explicación. En mi caso estoy intentando obtener resultados del número de veces que un usuario accede a una información por día dentro de un intervalo de fechas, por ejemplo:

    Intervalo: Desde 20200404 Hasta 20200406

    Fecha | accesos
    20200404 | 7
    20200405 | 10
    20200406 | 7

    Para luego acceder a cada registro y mostrar un gráfico con información de accesos por dia.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies

ACEPTAR
Aviso de cookies