Sentencia BETWEEN con fechas

En este artículo vamos a ver un ejemplo de como crear una consulta SQL para mostrar registros que se produjeron en una fecha determinada. Vamos a limitar tanto el inicio como el final, es decir, un periodo cerrado.

Imaginemos que tenemos una Web donde se pueden registrar usuarios. Estos usuarios se guardan en nuestra base de datos y guardando también la fecha de registro.

Ahora bien, necesitamos saber cuantos o que usuarios se registraron entre un periodo de tiempo. Podemos emplear la siguiente consulta:

SELECT name, lastname FROM users WHERE date_add BETWEEN '2012-05-01' AND '2012-06-01'

En la consulta anterior estamos seleccionando aquellos usuarios que se registraron entre las fechas del 1 de mayo del 2012 y el 1 de junio del 2012 (los registro del mes de mayo).

Si quisieramos mostrar todos los registros hasta el mes de mayo:

SELECT name, lastname FROM users WHERE date_add < '2012-05-01'

Y si quisieramos mostrar todos los registros que se realizaron después del mes de mayo:

SELECT name, lastname FROM users WHERE date_add > '2012-05-31'
Autor
Escrito por Jose Aguilar - Director ejecutivo y tecnológico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.
Te ha servido? Valora esta entrada!
(18 votos, promedio: 4 de 5)
Comparte en las redes sociales
¿Buscas trabajo de programador?

12 respuestas a “Sentencia BETWEEN con fechas”

  1. krvin dice:

    SELECT nom_usuario, fecha_acceso, fecha_salida, fecha_ultima_accion
    FROM tbl_sesiones_usuarios
    WHERE (nom_usuario = ‘carsosa’) and (fecha_acceso between ‘2021-02-03’ and ‘2021-02-04’ );

    quiero llevar esta consulta a mi codigo php para hacer una busqueda quien me ayuda

  2. jose ivan dice:

    SELECT doc_Cliente, nombre_Cliente
    FROM cliente
    WHERE doc_cliente IN (SELECT doc_Cliente
    FROM Facturas
    WHERE Fecha BETWEEN @Fecha and @Fecha)

    que significa esto

  3. catherine tocarema dice:

    Buenos dias
    quisiera saber como filtrar por un mes anterior a la fecha actual y que esa consulta quede de manera automática, es decir que si en enero consulto ese query me traiga las información de Diciembre

  4. Leon dice:

    Intenta sacar las fechas desde la misma tabla para que el ejemplo sirva

  5. martin dice:

    yo lo estoy haciendo de esta manera
    $fecha1=$_POST[«fecha1»];
    $fecha2=$_POST[«fecha2»];

    $sql = «select * from historial »
    . «where »
    . » fcmod between’$fecha1′ and ‘$fecha2′»
    . «Order by fcmod ASC «;

    pero tengo un problema que si lo le coloca ejemplo fecha1=12/10/2014 y fecha2=12/10/2017 solo m muestra los registros que se encuentren en esos meses mas no todos los que entren dentro de ese rango que estare haciendo mal.??

  6. erick rubio dice:

    y si además de mostrarlos quiero que me los ordene de menor a mayor ?
    tengo esta consulta
    SELECT * FROM `clientes` WHERE (’11/05/16′ <= `fechainicio` AND `fechainicio` <= '19/06/17')

    • Jose Aguilar dice:

      En principio sería muy sencillo. Tan solo debes agregar el order by:

      SELECT * FROM `clientes` WHERE (’11/05/16′ <= `fechainicio` AND `fechainicio` <= '19/06/17') ORDER BY fechainicio ASC

  7. Martin Gorgojo dice:

    Hola yo tengo una tabla de efemérides en mi base de datos y me gustaría visualizar cada día los registros de ese día aunque estén ingresados en diferentes años porque de la forma expuesta hay que estar retocando el código para ver una fecha.
    Gracias por adelantado.

  8. anonimo dice:

    esta perfect.. pero xq no hacer recibiendo variables desde un rango de fechasssssss :S

    • Dayana dice:

      Despite our meetings and discussions, I am having trouble with Tyoma’s teacher. I am going to use this as a roadmap to Tyoma’s teacher. I had read this at the beginning of the school year when things were going well. Now with fall and winter flus swishing around, I have to remind and re-educate.You have given me the perfect road map. I am so grateful to have the help. I would feel so lost tonight without your po!rLCheets!sori

  9. JUAN dice:

    hola jose espero me puedas ayudar mira yo tengo que hacer algo similar pero con jdate chooser en netbeans y tengo que selecionar de una lista un empleado y selecionar el rango de fechas en el cual quiero que me muestre la informacion en un jtable…. de antemano gracias

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Ver más sobre