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 (Ferramentas > 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.

     

Guia de scripting do ACL 14.1