Función BETWEEN( )

Devuelve un valor lógico que indica si el valor especificado está dentro de un rango.

Sintaxis

BETWEEN(valor; mín; máx)

Parámetros

Nombre Tipo Descripción
valor

carácter

numérico

fechahora

El campo, expresión o valor literal a probar.
mín

carácter

numérico

fechahora

El valor mínimo del rango.

máx

carácter

numérico

fechahora

El valor máximo del rango.

Nota

El rango que evalúa T (verdadero) incluye los valores mín y máx.

Si desea obtener información sobre los rangos de caracteres, consulte Comportamiento de SET EXACT.

Salida

Lógico. Devuelve T (verdadero) si el valor es mayor o igual que el valor mín y menor o igual que el valor máx. Devuelve F (falso) en caso contrario.

Ejemplos

Ejemplos básicos

Valor de entrada numérico

Devuelve T:

BETWEEN(500;400;700)

Devuelve F:

BETWEEN(100;400;700)

Valor de entrada de caracteres

Devuelve T:

BETWEEN("B"; "A"; "C")

Devuelve F, porque la comparación de caracteres distingue entre mayúsculas y minúsculas y la "b" minúscula no entra entre las mayúsculas “A” y “C”.

BETWEEN("b"; "A"; "C")

Valor de entrada de fechahora

Devuelve T:

BETWEEN(`141230`;`141229`;`141231`)

Devuelve T para todos los valores en el campo Hora_de_acceso entre 07:00:00 AM y 09:00:00 AM inclusive y F en caso contrario:

BETWEEN(Hora_de_acceso;`t070000`;`t090000`)

Comportamiento de SET EXACT

Devuelve T para todos los valores del campo Apellido que comienzan con las letras "C" a "K", inclusive, y F en caso contrario (SET EXACT debe estar ajustado en OFF):

BETWEEN(Apellido; "C"; "K")

Devuelve T para todos los valores del campo Apellido que comienzan con las letras "C" a "J", inclusive, y ‘F’ en caso contrario (SET EXACT debe estar ajustado en ON). También devuelve T para la letra "K":

BETWEEN(Apellido; "C"; "K")

Valor de entrada del campo

Devuelve T para todos los valores del campo Fecha_de_factura desde 30 Sep 2014 a 30 Oct 2014, inclusive, y F en caso contrario:

BETWEEN(Fecha_de_factura; `20140930`; `20141030`)

Devuelve T para todos los registros en los cuales la fecha de la factura no cae entre la fecha de la orden de compra y la fecha de pago, inclusive, y F en caso contrario:

NOT BETWEEN(Fecha_de_factura; Fecha_de_PO; Fecha_de_pago)

Devuelve T para todos los valores del campo Importe_factura que van de $1000 a $5000, inclusive, y F en caso contrario:

BETWEEN(Importe_factura; 1000; 5000)

Ejemplos avanzados

Creación de un filtro para ver un rango de salario

El ejemplo siguiente abre la tabla de muestra Lista_empleados y aplica un filtro que limita los registros que se muestran para incluir solo a los empleados que ganan un salario mayor o igual a $40000,00 y menor o igual a $50000,00.

OPEN Lista_empleados
SET FILTER TO BETWEEN(Salario; 40000,00; 50000,00)

Observaciones

Tipos de datos admitidos

Los valores de entrada de la función BETWEEN( ) pueden ser numéricos, de carácter o de fechahora. No es posible mezclar tipos de datos. Los tres valores de entrada deben pertenecer a la misma categoría de datos.

Utilice BETWEEN( ) en lugar del operador AND

Se puede utilizar la función BETWEEN ( ) en lugar de expresiones que utilizan el operador AND.

Por ejemplo:

BETWEEN(Importe_factura; 1000; 5000)

equivale a

Importe_factura >= 1000 AND Importe_factura <= 5000

El orden de mín y máx

El orden de mín y máx en la función BETWEEN( ) no importa porque Analytics identifica automáticamente cuál valor es el mínimo y cuál es el máximo.

Los siguientes dos ejemplos devuelven T:

BETWEEN(2500; 1000; 5000)
BETWEEN(2500; 5000; 1000)

Precisión decimal de los valores de entrada numéricos

Cuando los valores de entrada numéricos que se están comparando tienen una precisión diferente en decimales, la comparación utiliza el nivel más elevado de precisión.

Devuelve T, porque 1.23 es igual a 1.23:

BETWEEN(1.23; 1.23; 1.25)

Devuelve F, porque 1.23 es inferior a 1.234 una vez que se tiene en cuenta el tercer lugar decimal:

BETWEEN(1.23; 1.234; 1.25)

Datos de caracteres

Coincidir mayúsc.-minúsc.

La función BETWEEN( ) diferencia entre mayúsculas y minúsculas cuando se utiliza con datos de caracteres. Cuando compara caracteres, "a" no equivale a "A".

Devuelve F:

BETWEEN("B"; "a"; "C")

Si está trabajando con datos que incluyen incoherencias entre mayúsculas y minúsculas, puede utilizar la función UPPER( ) para convertir los valores a un uso coherente de mayúsculas antes de usar BETWEEN( ).

Devuelve T:

BETWEEN(UPPER("B"); UPPER("a"); UPPER("C"))

Coincidencia parcial

Se admite la coincidencia parcial para las comparaciones de caracteres.

valor puede estar contenido en mín.

Devuelve T, aun cuando el valor "AB" parece ser menos que el mín "ABC":

BETWEEN("AB"; "ABC"; "Z")

máx puede estar contenido en valor.

Devuelve T, aun cuando el valor "ZZ" parece ser superior a máx "Z":

BETWEEN("ZZ"; "ABC"; "Z")

Nota

El valor más corto en la comparación de caracteres debe aparecer al principio del valor más extenso para que exista una coincidencia.

Coincidencia parcial y SET EXACT

La coincidencia parcial se activa cuando SET EXACT = OFF, que es el ajuste predeterminado de Analytics. Si SET EXACT = ON, la coincidencia parcial se desactiva y los valores de comparación deben coincidir de manera exacta para que haya una coincidencia.

Los dos ejemplos anteriores son Falsos cuando SET EXACT está ON.

Si desea obtener más información acerca de SET EXACT (la opción Comparaciones de caracteres exactos), consulte Comando SET.

Activación o desactivación de SET EXACT

Si desea asegurarse de que no se utilice la opción Comparaciones de caracteres exactos con la función BETWEEN( ), compruebe que la opción no esté seleccionada en la ficha Tabla en el cuadro de diálogo Opciones (Herramientas > Opciones).

Si usted está usando un script, puede añadir el comando SET EXACT OFF antes de que aparezca la función BETWEEN ( ). Si es necesario, puede restaurar el estado previo con el comando SET EXACT ON.

Parámetros Fechahora

Un campo de fecha, fechahora u hora especificado como un valor de entrada de una función puede utilizar cualquier formato de fecha, fechahora u hora, siempre que la definición del campo establezca correctamente el formato.

Combinación de valores de entrada de fecha, fechahora y hora

No existen impedimentos para mezclar los valores de fecha, fechahora y hora en los tres valores de entrada de la función BETWEEN( ), pero la mezcla de estos subtipos de Fechahora puede dar resultados que no son significativos.

Analytics utiliza equivalentes de números de serie para procesar los cálculos de fechahora, por lo que, incluso si usted está interesado solo en la porción fecha de un valor de fechahora, la porción hora sigue formando parte del cálculo.

Veamos los siguientes ejemplos:

Devuelve T, porque 31 de diciembre de 2014 cae dentro del intervalo especificado por mín y máx:

BETWEEN(`20141231`;`20141229`;`20141231`)

Devuelve T, aun cuando 12:00 PM del 31 de diciembre de 2014 parece caer dentro del intervalo especificado por mín y máx:

BETWEEN(`20141231 120000`;`20141229`;`20141231`)

Si nos fijamos en el número de serie equivalente de estas dos expresiones, podemos ver por qué la segunda se evalúa como falsa.

Devuelve T, porque el número de serie valor es igual al número de serie máx:

BETWEEN(42003.000000; 42001.000000; 42003.000000)

Devuelve F, porque el número de serie valor es superior al número de serie máx:

BETWEEN(42003.500000; 42001.000000; 42003.000000)

El número de serie 42003,500000 es mayor que 42003,000000 y por lo tanto está fuera del rango, a pesar de que las dos fechas son idénticas. 0.500000 es el número de serie que equivale a 12:00 PM.

Armonizar subtipos de Fechahora

Para evitar problemas que podrían surgir por la mezcla de subtipos de Fechahora, puede usar las funciones para armonizar los subtipos.

Por ejemplo, esta expresión, que utiliza los mismos valores iniciales que el segundo ejemplo anterior, se evalúa como T en lugar de F:

BETWEEN(CTOD(DATE(`20141231 120000`;"YYYYMMDD");"YYYYMMDD"); `20141229`; `20141231`)

Especificar un valor de fecha, fechahora u hora literal

Al especificar un valor literal de fecha, fechahora u hora para cualquiera de los valores de entrada de una función, solo puede utilizar los formatos de la siguiente tabla y debe encerrar el valor entre acentos graves; por ejemplo, `20141231`.

No utilice ningún separador, como barras (/) o dos puntos (:), entre los componentes individuales de fechas u horas.

  • Valores de fechahora: puede utilizar cualquier combinación de formatos de fecha, separador y hora de la siguiente tabla. La fecha debe preceder a la hora y se debe utilizar un separador entre las dos. Los separadores válidos son un espacio en blanco, la letra 't' o la letra 'T'.

  • Valores de hora: debe especificar las horas con el reloj de 24 horas. Los desplazamientos respecto del Horario Universal Coordinado (UTC, por sus siglas en inglés) deben ir precedidos de un signo más (+) o un signo menos (-).

    Formatos de ejemplo

    Valores literales de ejemplo

    AAAAMMDD

    `20141231`

    AAMMDD

    `141231`

    AAAAMMDD hhmmss

    `20141231 235959`

    AAMMDDthhmm

    `141231t2359`

    AAAAMMDDThh

    `20141231T23`

    AAAAMMDD hhmmss+/-hhmm

    (desplazamiento de UTC)

    `20141231 235959-0500`

    AAMMDD hhmm+/-hh

    (desplazamiento de UTC)

    `141231 2359+01`

    thhmmss

    `t235959`

    Thhmm

    `T2359`

    Nota

    No use solo hh en el formato de la hora principal con datos que tienen un desplazamiento del UTC. Por ejemplo, evite: hh+hhmm. Los resultados pueden no ser confiables.

     

Guía de creación de scripts de ACL 14.1