Função BETWEEN( )
Retorna um valor lógico que indica se o valor especificado está dentro de um intervalo.
Sintaxe
BETWEEN(valor; mín; máx)
Parâmetros
Nome | Tipo | Descrição |
---|---|---|
valor |
caractere numérico datahora |
O campo, expressão ou valor literal a ser testado. |
mín |
caractere numérico datahora |
O valor mínimo do intervalo. |
máx |
caractere numérico datahora |
O valor máximo do intervalo. |
Nota
O intervalo avaliado como T (verdadeiro) inclui os valores min e max.
Para obter informações a respeito de intervalos de caracteres, consulte Comportamento do SET EXACT.
Saída
Lógico. Retorna T (verdadeiro) se valor for maior ou igual ao valor min e menor ou igual ao valor max. Caso contrário, retorna F (falso).
Exemplos
Exemplos básicos
Entrada numérica
Retorna T:
BETWEEN(500;400;700)
Retorna F:
BETWEEN(100;400;700)
Entrada de caracteres
Retorna T:
BETWEEN("B";"A";"C")
Retorna F, pois a comparação de caracteres diferencia entre maiúsculas e minúsculas e "b" minúsculo não está entre "A" e "C" maiúsculos:
BETWEEN("b";"A";"C")
Entrada datahora
Retorna T:
BETWEEN(`141230`;`141229`;`141231`)
Retorna T para todos os valores do campo Hora_login entre 07:00:00 AM e 09:00:00 AM, inclusive, e F para os demais:
BETWEEN(Hora_login;`t070000`;`t090000`)
Comportamento do SET EXACT
Retorna T para todos os valores do campo Sobrenome que começam com as letras entre "C" e "K", inclusive, e "F" para os demais (SET EXACT deve ser OFF):
BETWEEN(Sobrenome; "C"; "K")
Retorna T para todos os valores do campo Sobrenome que começam com as letras entre "C" e "J", inclusive, e "F" para os demais (SET EXACT deve ser ON). Também retorna T para a letra "K" sozinha:
BETWEEN(Sobrenome; "C"; "K")
Entrada de campo
Retorna T para todos os valores do campo Data_Fatura entre 30 Set 2014 e 30 Out 2014, incluindo estas, ou F em outro caso:
BETWEEN(Data_Fatura; `20140930`; `20141030`)
Retorna T para todos os registros nos quais a data da fatura não se situa entre a data de recebimento e data de pagamento, incluindo estas, ou F em outro caso:
NOT BETWEEN(Data_Fatura; Data_Rec; Data_Pagto)
Retorna T para todos os valores no campo Valor_Fatura de $ 1000 a $ 5000, incluindo estes, ou F em outro caso:
BETWEEN(Valor_Fatura; 1000; 5000)
Exemplos avançados
Criando um filtro para exibir uma faixa salarial
O exemplo a seguir abre a tabela de amostra Lista_Funcionários e aplica um filtro que limita os registros exibidos para incluir apenas funcionários que ganham um salário maior ou igual a $ 40.000,00 e menor ou igual a $ 50.000,00.
OPEN Lista_funcionários SET FILTER TO BETWEEN(Salário; 40000,00; 50000,00)
Observações
Tipos de dados compatíveis
Entradas para a função BETWEEN( ) podem ser numéricas, caracteres ou dados de datahora. Não é possível misturar tipos de dados. Todas as três entradas devem pertencer à mesma categoria de dados.
Use BETWEEN( ) em vez do operador AND
Você pode usar a função BETWEEN( ) em vez de expressões que utilizam o operador AND.
Por exemplo:
BETWEEN(Valor_Fatura; 1000; 5000)
equivale a
Valor_Fatura>= 1000 AND Valor_Fatura <= 5000
A ordem de mín e máx
A ordem de min e max na função BETWEEN( ) não é importante porque o Analytics identifica automaticamente qual valor é o mínimo e qual é o máximo.
Os dois exemplos abaixo retornam T:
BETWEEN(2500; 1000; 5000)
BETWEEN(2500; 5000; 1000)
Precisão decimal de entradas numéricas
Quando as entradas numéricas em comparação têm diferentes precisões de decimais, a comparação usa o nível mais alto de precisão.
Retorna T, pois 1,23 é igual a 1,23:
BETWEEN(1,23; 1,23; 1,25)
Retorna F, pois 1,23 é menor que 1,234 quando a terceira casa decimal é considerada:
BETWEEN(1,23; 1,234; 1,25)
Dados de caracteres
Diferenciação de maiúsculas e minúsculas
A função BETWEEN( ) diferencia maiúsculas de minúsculas quando usada com dados de caracteres. Na comparação de caracteres, "a" não é equivalente a "A".
Retorna F:
BETWEEN("B";"a";"C")
Se você estiver trabalhando com dados com inconsistência entre maiúsculas e minúsculas, poderá usar a função UPPER( ) para converter os valores para que fiquem consistentes antes de usar BETWEEN( ).
Retorna T:
BETWEEN(UPPER("B"); UPPER("a"); UPPER("C"))
Correspondência parcial
A correspondência parcial é suportada para comparações de caracteres.
valor pode ser contido por min.
Retorna T, embora o valor "AB" pareça ser menor que o min "ABC":
BETWEEN("AB"; "ABC"; "Z")
max pode ser contido por valor.
Retorna T, embora o valor "ZZ" pareça ser maior que o max "Z":
BETWEEN("ZZ"; "ABC"; "Z")
Nota
O valor mais curto na comparação de caracteres deve aparecer no início do valor mais longo para constituir uma correspondência.
Correspondência parcial e SET EXACT
A correspondência parcial é ativada quando SET EXACT = OFF, que é a configuração padrão do Analytics. Se SET EXACT = ON, a correspondência parcial é desativada e os valores em comparação devem corresponder exatamente para que a correspondência seja considerada.
Os dois exemplos acima resultam em Falso quando o SET EXACT está em ON.
Para obter mais informações sobre o SET EXACT (a opção Comparações exatas de caractere), consulte Comando SET.
Ativação ou desativação de SET EXACT
Para ter certeza de que a opção Comparações exatas de caractere não seja usada com a função BETWEEN( ), verifique se a opção está desmarcada na guia Tabela na caixa de diálogo Opções ( ).
Se você está usando um script, pode adicionar o comando SET EXACT OFF antes que a função BETWEEN( ) apareça. Se necessário, você pode restaurar o estado anterior com o comando SET EXACT ON.
Parâmetros de datahora
Um campo de data, datahora ou hora especificado como entrada de função pode usar qualquer formato de data, datahora ou hora desde que a definição do campo defina corretamente o formato.
Combinação de entradas de dados, datahora e hora
É possível combinar valores de data, datahora e hora nas três entradas da função BETWEEN( ), mas essa combinação dos subtipos de datahora pode gerar resultados sem significado.
O Analytics usa equivalentes a números seriais para processar cálculos de data hora. Mesmo que você tenha interesse apenas na parte de data de um valor de datahora, a parte de hora continua a participar do cálculo.
Considere os exemplos a seguir:
Retorna T, pois 31 de dezembro de 2014 está no intervalo especificado por min e max:
BETWEEN(`20141231`;`20141229`;`20141231`)
Retorna F, embora 12:00 PM de 31 de dezembro de 2014 pareça estar no intervalo especificado por min e max:
BETWEEN(`20141231 120000`;`20141229`;`20141231`)
Se examinarmos o equivalente ao número serial dessas duas expressões, poderemos perceber por que a segunda será avaliada como falso.
Retorna T, porque o número serial valor é igual ao número serial max:
BETWEEN(42003,000000; 42001,000000; 42003,000000)
Retorna T, porque o número serial valor é maior que o número serial max:
BETWEEN(42003,500000; 42001,000000; 42003,000000)
O número serial 42003,500000 é maior que 42003,000000 e, portanto, fora do intervalo, embora as duas datas sejam idênticas. 0,500000 é o equivalente ao número serial 12:00 PM.
Harmonizar subtipos de datahora
Para evitar os problemas que podem ser causados pela mistura de subtipos de datahora, você pode usar funções para harmonizá-los.
Por exemplo, essa expressão, que usa os mesmos valores iniciais do segundo exemplo acima, é avaliada como T em vez de F:
BETWEEN(CTOD(DATE(`20141231 120000`;"YYYYMMDD");"YYYYMMDD");`20141229`;`20141231`)
Especificação de um valor literal de data, datahora ou hora
Ao especificar um valor literal de data , datahora ou hora para qualquer uma das entradas de função, você fica restrito aos formatos na tabela abaixo e o valor deve estar entre apóstrofos invertidos – por exemplo, `20141231`.
Não use separadores como barras (/) ou dois pontos (:) entre os componentes individuais de datas ou horas.
-
Valores de datahora – você pode usar qualquer combinação de formatos de data, separador e hora listados na tabela abaixo. A data deve preceder a hora e um separador deve ser usado entre os dois. Os separadores válidos são um único espaço em branco ou as letras 't' ou 'T'.
-
Valores de tempo – as horas devem ser especificadas usando o relógio de 24 horas. Os ajustes do Tempo Universal Coordenado (UTC) devem ser precedidos por um sinal de mais (+) ou de menos (-).
Exemplos de formato
Exemplos de valores literais
AAAAMMDD
`20141231`
AAMMDD
`141231`
AAAAMMDD hhmmss
`20141231 235959`
AAMMDDthhmm
`141231t2359`
AAAAMMDDThh
`20141231T23`
AAAAMMDD hhmmss+/-hhmm
(ajuste UTC)
`20141231 235959-0500`
AAMMDD hhmm+/-hh
(ajuste UTC)
`141231 2359+01`
thhmmss
`t235959`
Thhmm
`T2359`
Nota
Não use somente hh no formato de hora principal com dados que têm um ajuste UTC. Por exemplo, evite: hh+hhmm. Os resultados podem ser não confiáveis.