Cómo filtrar por un rango de fechas en SQL Server con el operador BETWEEN

La sentencia u operador BETWEEN de SQL le permite probar fácilmente si una expresión está dentro de un rango de valores. Los valores pueden ser texto, fechas o números. Se puede usar en una instrucción SELECT, INSERT, UPDATE o DELETE. La condición BETWEEN de SQL devolverá los registros donde la expresión está dentro del rango de valor1 y valor2 y se utiliza en la cláusula WHERE.


 

Sintaxis de SQL BETWEEN

SELECT columna1
FROM tabla
WHERE columna1 BETWEEN valor1 AND valor2;

 

Ejemplos:

Considere la siguiente tabla de Employees, la cual forma parte de la base de datos Northwind que hemos estado utilizando y la pueden descargar en esta liga.

 

select EmployeeID, LastName, FirstName, Title, BirthDate, ReportsTo from Employees

 

EmployeeID

LastName

FirstName

Title

BirthDate

ReportsTo

1

Davolio

Nancy

Sales Representative

1948-12-08T00:00:00.000Z

2

2

Web Group

Estrada

Vice President, Sales

1952-02-19T00:00:00.000Z

NULL

3

Leverling

Janet

Sales Representative

1963-08-30T00:00:00.000Z

2

4

Peacock

Margaret

Sales Representative

1937-09-19T00:00:00.000Z

2

5

Buchanan

Steven

Sales Manager

1955-03-04T00:00:00.000Z

2

6

Suyama

Michael

Sales Representative

1963-07-02T00:00:00.000Z

5

7

King

Robert

Sales Representative

1960-05-29T00:00:00.000Z

5

8

Callahan

Laura

Inside Sales Coordinator

1958-01-09T00:00:00.000Z

2

9

Dodsworth

Anne

Sales Representative

1966-01-27T00:00:00.000Z

5

 

Utilizando BETWEEN con valores numéricos:

 

Obtendremos una lista de todos los empleados EmployeeID, LastName, FirstName, Title, BirthDate, ReportsT que tiene un valor en ReportsT entre 3 y 8.


 

select EmployeeID, LastName, FirstName, Title, BirthDate, ReportsTo from Employees
where ReportsTo BETWEEN 3 and 8

EmployeeID

LastName

FirstName

Title

BirthDate

ReportsTo

6

Suyama

Michael

Sales Representative

1963-07-02T00:00:00.000Z

5

7

King

Robert

Sales Representative

1960-05-29T00:00:00.000Z

5

9

Dodsworth

Anne

Sales Representative

1966-01-27T00:00:00.000Z

5

 

 

Usando BETWEEN con campos tipo fecha:

 

Encuentre a todos los empleados que tengan fecha de nacimiento entre el 01-01-1920 y el 12-12-1950.
 

select EmployeeID, LastName, FirstName, Title, BirthDate, ReportsTo from Employees
where BirthDate BETWEEN '01-01-1920' and '12-12-1960'

 

EmployeeID

LastName

FirstName

Title

BirthDate

ReportsTo

1

Davolio

Nancy

Sales Representative

1948-12-08T00:00:00.000Z

2

2

Web Group

Estrada

Vice President, Sales

1952-02-19T00:00:00.000Z

NULL

4

Peacock

Margaret

Sales Representative

1937-09-19T00:00:00.000Z

2

5

Buchanan

Steven

Sales Manager

1955-03-04T00:00:00.000Z

2

7

King

Robert

Sales Representative

1960-05-29T00:00:00.000Z

5

8

Callahan

Laura

Inside Sales Coordinator

1958-01-09T00:00:00.000Z

2

 

Usando el operador NOT con BETWEEN

Encuentre todos los empleados cuyo ID no esté en el rango de 5 y 50.

select EmployeeID, LastName, FirstName, Title, BirthDate, ReportsTo from Employees
where EmployeeID BETWEEN 5 and 50

 

EmployeeID

LastName

FirstName

Title

BirthDate

ReportsTo

1

Davolio

Nancy

Sales Representative

1948-12-08T00:00:00.000Z

2

2

Web Group

Estrada

Vice President, Sales

1952-02-19T00:00:00.000Z

NULL

3

Leverling

Janet

Sales Representative

1963-08-30T00:00:00.000Z

2

4

Peacock

Margaret

Sales Representative

1937-09-19T00:00:00.000Z

2

 

Enviame tus comentarios y observaciones si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado en este artículo.

 

Artículos relacionados
How to remove duplicate rows in SQL Server, MySql and Oracle?
How to remove duplicate rows in SQL Server, MySql and Oracle?

In this article we will see how to eliminate d

Cómo filtrar por un rango de fechas en SQL Server con el operador BETWEEN
Cómo filtrar por un rango de fechas en SQL Server con el operador BETWEEN

La sentencia u operador BETWEEN de SQL le perm

Cómo obtener las filas de una tabla que no están en otra tabla en SQL Server
Cómo obtener las filas de una tabla que no están en otra tabla en SQL Server

Si estas escribiendo una consulta en SQL y qui

0 Comentarios
Enviame un comentario