- Categorias:
[ NOT ] BETWEEN¶
Retorna TRUE quando a expressão de entrada (numérica ou cadeia de caracteres) estiver dentro dos limites inferior e superior especificados.
Sintaxe¶
Argumentos¶
exprA expressão de entrada.
lower_boundO limite inferior.
upper_boundO limite superior.
Retornos¶
A função retorna um valor do tipo BOOLEAN.
Notas de uso¶
expr BETWEEN lower_bound AND upper_boundé equivalente aexpr >= lower_bound AND expr <= upper_bound.Os tipos de dados dos valores dos argumentos devem ser os mesmos ou compatíveis.
Se a função converter implicitamente um valor em um tipo de dados diferente, ela poderá retornar resultados inesperados.
Por exemplo, quando
expré um valor TIMESTAMP e os valoreslower_boundeupper_boundsão valores DATE, os valores DATE são implicitamente convertidos em valores TIMESTAMP e a hora é definida como00:00:00. Para a cláusula WHERE a seguir, suponha quetimestamp_columnseja uma coluna do tipo TIMESTAMP em uma tabela:Quando os valores de DATE são implicitamente convertidos, a cláusula WHERE é interpretada da seguinte forma:
Com essa cláusula WHERE, a função retorna
FALSEpara praticamente todos os valores detimestamp_columnem 31/04/2025, o que pode não ser o pretendido. Para evitar esse problema específico, você pode especificar o dia seguinte paraupper_boundquando chamar a função:
Detalhes do agrupamento¶
A expressão A BETWEEN X AND Y é equivalente a A >= X AND A <= Y. Os agrupamentos usados para comparação com X e Y são independentes e não precisam ser idênticos, mas ambos precisam ser compatíveis com o agrupamento de A.
Exemplos¶
Aqui estão alguns exemplos simples de utilização de BETWEEN com valores numéricos e cadeia de caracteres:
Os exemplos a seguir usam COLLATE com BETWEEN: