1. sql
  2. /references
  3. /between



In SQL, the BETWEEN operator is used to retrieve data from a table within a range. It can be used in a SELECT, INSERT, UPDATE, or DELETE statement.


Here is an example of how to use the BETWEEN operator in a SELECT statement:

FROM table_name 
WHERE column_name BETWEEN value1 AND value2;

This will select all rows from the table where the value in the column_name column is greater than or equal to value1 and less than or equal to value2.

You can also use the BETWEEN operator with dates, for example:

FROM table_name 
WHERE created_at BETWEEN '2022-01-01' AND '2022-12-31';

This will select all rows from the table where the value in the created_at is between January 1, 2022 and December 31, 2022 (inclusive).

Note: The BETWEEN operator is inclusive, meaning it will include values that are equal to value1 and value2. If you want to exclude these values, you can use the > and < operators instead.

Best Practices

There are a few best practices that you should follow to ensure that your queries are efficient and accurate:

  • Use an index: If the columns that you are using with BETWEEN have an index, the query will likely be faster. Be sure to include the columns in the index that you are comparing with the BETWEEN operator.

  • Be aware of the data types: Make sure that the data types of the columns being compared with BETWEEN match. Comparing different data types can lead to unexpected results.

  • Be careful when using null values: When comparing null values with the BETWEEN operator, the result is always null. You may want to use IS NULL or IS NOT NULL instead.

  • Consider using other operators: Depending on the nature of your query and the data in your table, other operators such as >, <, >=, <=, or IN may be more appropriate and performant.

  • Consider using additional filters in combination with the BETWEEN operator on the result of your query to filter the data you want.

  • Try to avoid using BETWEEN in subqueries. The BETWEEN operator will not use an index if it is inside a subquery.

  • BETWEEN operator is inclusive, so it includes the start and end values of the range. The values can be of textual, numeric type, or dates.