Skip to content

Between sql como usar para que sirve

SQL between es un operador lógico que nos permite filtrar resultados entre dos valores. En este articulo veremos un ejemplo de sql between en la clausula where, y tambien como usar sql between con campos numéricos , fechas y hora.

Antes tenemos que recordar que un operador lógico se diferencia de una clausula en SQL, ya que una clausula se usa para especificar la condición de una búsqueda, mientras que los operadores lógicos sirven para combinar o negar dichas condiciones.

Durante mis inicios between fue el operador lógico que mas me costo comprender, pero con la practica y ejemplos todo se vuelve mucho mas fácil.

Index

    Ejemplos con between campos numéricos

    supongamos que tenemos una tabla de productos con los campos id_producto, nombre y precio.

    Necesitamos filtrar todos los productos cuyo precio este entre 100 y 200 dólares.

    La consulta sería la siguiente:

    select * from productos where precios between 100 and 200;

    Si necesitamos filtrar todos los productos cuyo precio no este entre 100 y 200 dólares, podemos usar la palabra NOT antes del operador between.

    La consulta sería:

    select * from productos where precios not between 100 and 200;

    SQL between consultando fechas

    El uso de rango para filtrar fechas, es algo muy comun por lo cual te recomiendo ver estos ejemplos, Supongamos que tenemos una tabla de pedidos con los campos id_pedido, fecha y monto.

    Necesitamos filtrar todos los pedidos realizados entre el 01/01/2019 y el 31/12/2019.

    La consulta sería:

    select * from pedidos where fecha between ‘2019-01-01’ and ‘2019-12-31’;

    pero que pasa si esta fecha posee una hora seria un poco distinto ya que en este caso debemos usar la función timestamp. Esto indica que debemos incluir la hora dentro de la fecha.

    La consulta sería:

    select * from pedidos where fecha between ‘2019-01-01 00:00:00’ and ‘2019-12-31 23:59:59’;

    Ahora muy diferente seria si solo queremos consultar la hora , en este caso la consulta seria:

    select * from pedidos where hora between ’08:00:00′ and ’18:59:59′;

    Para aprendermas como sacar,filtrar fechas? ademas de formatear fechas para trabajar en sql server o en caso de que uses Mysql deberias ver la funcion date_format. te recomiendo estos link para ver mas ejemplos al detalle de cada caso.

    Ejemplo entre dos columnas distintas

    En este caso la consulta sería:

    select * from pedidos where fecha between ‘2019-01-01’ and ‘2019-12-31′ and hora between ’08:00:00′ and ’18:59:59’;

    Al utilizar el operador logico AND deben cumplirce ambas condiciones para que el resultado sea mostrado, en este caso entre la fecha y hora.

    La forma de convertir columnas fecha y solo extraer la hora puede ser muy variada entre oracle, sqlserver y mysql

    MySQL between entre horas

    select * from pedidos where DATE_FORMAT(fecha, ‘%H:%i:%s’) between ’08:00:00′ and ’18:59:59′;

    Between entre horas sql server y oracle

    select * from pedidos where cast(fecha as time) between ’08:00:00′ and ’18:59:59′;

    Sql between es un operador lógico que nos permite filtrar resultados entre dos valores. En este articulo veremos un ejemplo de sql between en la clausula where, y tambien como usar SQL between con tipos de datos numericos, fechas y horas.

    hasta la proxima

    Bye :D!!