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
0 Comentarios
Enviame un comentario