Question: Is there a performance difference between using a BETWEEN clause or using <= AND >= comparisons?

i.e. these two queries:

```
SELECT *  
  FROM table  
 WHERE year BETWEEN '2005' AND '2010';  

```

...and

```
SELECT *  
  FROM table  
 WHERE year >= '2005' AND year <= '2010';

```

In this example, the year column is VARCHAR2(4) with an index on it.

Answer: 
It may be worth considering the SQL standard for this (although this *might not* correspond to all implementations, even if it *should*):

```none
Format

<between predicate> ::=
  <row value constructor> [ NOT ] BETWEEN
    <row value constructor> AND <row value constructor>

Syntax Rules

[...]

6) "X BETWEEN Y AND Z" is equivalent to "X>=Y AND X<=Z".

```

Having said so, there is no difference in behaviour, although for complex `X`, there may be a difference in parsing time, as mentioned by [Benoit here](https://stackoverflow.com/a/4809148/521799)

Found in <http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt>
You better check your execution plans because there can be some weird edge cases where `BETWEEN` can have a different execution plan from the standard >= and <= combination.

<https://blog.pythian.com/oracle-can-between-and-greater-than-or-equal-to-and-less-than-or-equal-to-differ/>

Caveat emptor obviously. But since execution plans can change over time and I really do not have an appetite to test such things, I rather not use BETWEEN at all.

Sometimes less choice is better.