# inday - función de script y de gráfico

Esta función devuelve True si timestamp se encuentra dentro del día que contiene a base\_timestamp.

Sintaxis:

InDay (timestamp, base\_timestamp, period\_no[, day\_start])

Diagrama de la función `inday`

Diagrama de la función `inday`

Diagrama de la función `inday`inday ![Diagrama que muestra cómo se utiliza la función inday para identificar un segmento de tiempo y devolver resultados booleanos basados en ese segmento.](https://help.qlik.com/es-ES/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-inday-diagram.png)

La función `inday()` utiliza el argumento `base_timestamp` para identificar en qué día cae la marca de tiempo. La hora de inicio del día es, por defecto, la medianoche; pero puede cambiar la hora de inicio del día utilizando el argumento `day_start` de la función `inday()`. Una vez definido este día, la función devolverá resultados booleanos al comparar los valores de las marcas de tiempo prescritas con ese día.

Cuándo se utiliza

La función `inday()` devuelve un resultado booleano. Normalmente, este tipo de función se utilizará como condición en una expresión if (`if expression`). Esto devuelve una agregación o cálculo dependiente de si una fecha evaluada ocurrió en el día de la marca de tiempo en cuestión.

Por ejemplo, la función `inday()` puede utilizarse para identificar todos los equipos fabricados en un día determinado.

Tipo de datos que devuelve: Booleano

En Qlik Sense, el valor booleano verdadero viene representado por -1 y el valor falso está representado por 0.

Argumentos

| Argumento | Descripción |
| --- | --- |
| `timestamp` | La fecha y la hora que desea comparar con `base_timestamp`. |
| `base_timestamp` | La fecha y hora que se utiliza para evaluar la fecha-hora. |
| `period_no` | El día puede desplazarse mediante `period_no`. `period_no` es un entero, en el que el valor 0 indica el día que contiene a `base_timestamp`. Los valores negativos en `period_no` indican días precedentes y los valores positivos indican días subsiguientes. |
| `day_start` | Si desea trabajar con días que no comiencen a medianoche, indique un desplazamiento como una fracción de un día en `day_start`, por ejemplo, 0,125 para indicar las 3 AM. |

## Configuraciones regionales

A menos que se especifique algo distinto, los ejemplos de este tema utilizan el siguiente formato de fecha: MM/DD/YYYY. El formato de fecha se especifica en la sentencia `SET DateFormat` de su script de carga de datos. El formato de fecha predeterminado puede ser diferente en su sistema, debido a su configuración regional y otros factores. Puede cambiar el formato en los ejemplos a continuación para ajustarlo a sus necesidades. O puede cambiar los formatos en su script de carga para que coincidan con estos ejemplos.

La configuración regional predeterminada en las aps se basa en la configuración del sistema regional de la computadora o servidor donde esté instalado Qlik Sense. Si el servidor de Qlik Sense al que está accediendo está configurado en Suecia, el editor de carga de datos utilizará la configuración regional sueca para las fechas, la hora y la moneda. Estos ajustes de formato regional no están relacionados con el idioma mostrado en la interfaz de usuario de Qlik Sense. Qlik Sense se mostrará en el mismo idioma que esté utilizando en su navegador.

Ejemplos de funciones

| Ejemplo | Resultado |
| --- | --- |
| `inday` ('01/12/2006 12:23:00 PM', '01/12/2006 12:00:00 AM', 0) | Devuelve Verdadero |
| ` inday  ` ('01/12/2006 12:23:00 PM', '01/13/2006 12:00:00 AM', 0) | Devuelve Falso |
| `inday` ('01/12/2006 12:23:00 PM', '01/12/2006 12:00:00 AM', -1) | Devuelve Falso |
| `inday` ('01/11/2006 12:23:00 PM', '01/12/2006 12:00:00 AM', -1) | Devuelve Verdadero |
| `inday` ('01/12/2006 12:23:00 PM', '01/12/2006 12:00:00 AM', 0, 0.5) | Devuelve Falso |
| `inday` ('01/12/2006 11:23:00 AM', '01/12/2006 12:00:00 AM', 0, 0.5) | Devuelve Verdadero |

## Ejemplo 1: Sentencia Load (script)

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inday.htm)

#### Script de carga y resultados

Vista general

Abra el editor de carga de datos y agregue el script de carga a continuación a una nueva pestaña.

El script de carga contiene:

* Un conjunto de datos que contiene transacciones por marca de tiempo, que se carga en una tabla llamada `Transactions`.

* Un campo de fecha que se proporciona en el formato `(M/D/YYYY h:mm:ss[.fff] TT)` de la variable del sistema `TimeStamp`.

* Un load precedente que contiene la función `inday()` que se configura como el campo `in_day`.

Script de carga

```
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';

Transactions:
    Load
        *,
        inday(date,'01/05/2022 12:00:00 AM', 0) as in_day
        ;
Load
*
Inline 
[
id,date,amount
9497,'01/01/2022 7:34:46 PM',13.24
9498,'01/01/2022 10:10:22 PM',31.43
9499,'01/02/2022 8:35:54 AM',36.34
9500,'01/03/2022 2:21:53 PM',51.75
9501,'01/04/2022 6:49:38 PM',15.35
9502,'01/04/2022 10:58:34 PM',74.34
9503,'01/05/2022 5:40:49 AM',73.53
9504,'01/05/2022 11:29:38 AM',50.00
9505,'01/05/2022 7:04:57 PM',47.25
9506,'01/06/2022 8:49:09 AM',74.23
];
```

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* `date`

* `in_day`

Tabla de resultados

| date | in\_day |
| --- | --- |
| 01/01/2022 7:34:46 PM | 0 |
| 01/01/2022 10:10:22 PM | 0 |
| 01/02/2022 8:35:54 AM | 0 |
| 01/03/2022 2:21:53 PM | 0 |
| 01/04/2022 6:49:38 PM | 0 |
| 01/04/2022 10:58:34 PM | 0 |
| 01/05/2022 5:40:49 AM | -1 |
| 01/05/2022 11:29:38 AM | -1 |
| 01/05/2022 7:04:57 PM | -1 |
| 01/06/2022 8:49:09 AM | 0 |

El campo `in_day` se crea en la sentencia load anterior utilizando la función `inday()` e introduciendo el campo de fecha, una marca de tiempo codificada para el 5 de enero y un `period_no` de `0` como argumentos de la función.

## Ejemplo 2: period\_no

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inday.htm)

#### Script de carga y resultados

Vista general

El script de carga utiliza el mismo conjunto de datos y el mismo escenario que se utilizó en el primer ejemplo.

Sin embargo, en este ejemplo, la tarea consiste en calcular si la fecha de la transacción ocurrió dos días antes del 5 de enero.

Script de carga

```
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';

Transactions:
    Load
        *,
        inday(date,'01/05/2022 12:00:00 AM', -2) as in_day
        ;
Load
*
Inline 
[
id,date,amount
9497,'01/01/2022 7:34:46 PM',13.24
9498,'01/01/2022 10:10:22 PM',31.43
9499,'01/02/2022 8:35:54 AM',36.34
9500,'01/03/2022 2:21:53 PM',51.75
9501,'01/04/2022 6:49:38 PM',15.35
9502,'01/04/2022 10:58:34 PM',74.34
9503,'01/05/2022 5:40:49 AM',73.53
9504,'01/05/2022 11:29:38 AM',50.00
9505,'01/05/2022 7:04:57 PM',47.25
9506,'01/06/2022 8:49:09 AM',74.23
];
```

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* `date`

* `in_day`

Tabla de resultados

| date | in\_day |
| --- | --- |
| 01/01/2022 7:34:46 PM | 0 |
| 01/01/2022 10:10:22 PM | 0 |
| 01/02/2022 8:35:54 AM | 0 |
| 01/03/2022 2:21:53 PM | -1 |
| 01/04/2022 6:49:38 PM | 0 |
| 01/04/2022 10:58:34 PM | 0 |
| 01/05/2022 5:40:49 AM | 0 |
| 01/05/2022 11:29:38 AM | 0 |
| 01/05/2022 7:04:57 PM | 0 |
| 01/06/2022 8:49:09 AM | 0 |

En este caso, como se utiliza un `period_no` de `-2` como argumento de desplazamiento en la función `inday()`, esta determina si cada fecha de transacción tuvo lugar el 3 de enero. Esto se puede verificar en la tabla de salida, donde una transacción devuelve un resultado booleano TRUE.

## Ejemplo 3: day\_start

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inday.htm)

#### Script de carga y resultados

Vista general

El script de carga utiliza el mismo conjunto de datos y el mismo escenario que se utilizó en los ejemplos anteriores.

Sin embargo, en este ejemplo, la política de la empresa es que la jornada laboral comienza y termina a las 7 de la mañana.

Script de carga

```
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';

Transactions:
    Load
        *,
        inday(date,'01/05/2022 12:00:00 AM', 0, 7/24) as in_day
        ;
Load
*
Inline 
[
id,date,amount
9497,'01/01/2022 7:34:46 PM',13.24
9498,'01/01/2022 10:10:22 PM',31.43
9499,'01/02/2022 8:35:54 AM',36.34
9500,'01/03/2022 2:21:53 PM',51.75
9501,'01/04/2022 6:49:38 PM',15.35
9502,'01/04/2022 10:58:34 PM',74.34
9503,'01/05/2022 5:40:49 AM',73.53
9504,'01/05/2022 11:29:38 AM',50.00
9505,'01/05/2022 7:04:57 PM',47.25
9506,'01/06/2022 8:49:09 AM',74.23
];
```

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* `date`

* `in_day`

Tabla de resultados

| date | in\_day |
| --- | --- |
| 01/01/2022 7:34:46 PM | 0 |
| 01/01/2022 10:10:22 PM | 0 |
| 01/02/2022 8:35:54 AM | 0 |
| 01/03/2022 2:21:53 PM | 0 |
| 01/04/2022 6:49:38 PM | -1 |
| 01/04/2022 10:58:34 PM | -1 |
| 01/05/2022 5:40:49 AM | -1 |
| 01/05/2022 11:29:38 AM | 0 |
| 01/05/2022 7:04:57 PM | 0 |
| 01/06/2022 8:49:09 AM | 0 |

Como el argumento de `start_day` de 7/24, que es 7 AM, se utiliza en la función `inday()`, esta determina si cada fecha de transacción tuvo lugar el 4 de enero a partir de las 7 AM y el 5 de enero antes de las 7 AM.

Esto se puede verificar en la tabla de salida, donde las transacciones que tienen lugar después de las 7 de la mañana del 4 de enero devuelven un resultado booleano de mientras que las transacciones que tienen lugar después de las 7 de la mañana del 5 de enero devuelven un resultado booleano FALSE.

## Ejemplo 4 : Objeto gráfico

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inday.htm)

#### Script de carga y expresión de gráfico

Vista general

El script de carga utiliza el mismo conjunto de datos y el mismo escenario que se utilizó en los ejemplos anteriores.

Sin embargo, en este ejemplo, el conjunto de datos sin modificar se carga en la aplicación. Haremos un cálculo para ver si una transacción tiene lugar el 5 de enero creando una medida en un objeto gráfico.

Script de carga

```

Transactions:
Load
*
Inline 
[
id,date,amount
9497,'01/01/2022 7:34:46 PM',13.24
9498,'01/01/2022 10:10:22 PM',31.43
9499,'01/02/2022 8:35:54 AM',36.34
9500,'01/03/2022 2:21:53 PM',51.75
9501,'01/04/2022 6:49:38 PM',15.35
9502,'01/04/2022 10:58:34 PM',74.34
9503,'01/05/2022 5:40:49 AM',73.53
9504,'01/05/2022 11:29:38 AM',50.00
9505,'01/05/2022 7:04:57 PM',47.25
9506,'01/06/2022 8:49:09 AM',74.23
];
```

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue este campo como dimensión:

* `date`

Para calcular si una transacción tiene lugar el 5 de enero, cree la siguiente medida:

`=inday(date,'01/05/2022 12:00:00 AM',0)`

Tabla de resultados

| date | inday(date,'01/05/2022 12:00:00 AM',0) |
| --- | --- |
| 01/01/2022 7:34:46 PM | 0 |
| 01/01/2022 10:10:22 PM | 0 |
| 01/02/2022 8:35:54 AM | 0 |
| 01/03/2022 2:21:53 PM | 0 |
| 01/04/2022 6:49:38 PM | 0 |
| 01/04/2022 10:58:34 PM | 0 |
| 01/05/2022 5:40:49 AM | -1 |
| 01/05/2022 11:29:38 AM | -1 |
| 01/05/2022 7:04:57 PM | -1 |
| 01/06/2022 8:49:09 AM | 0 |

## Ejemplo 5: Escenario

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inday.htm)

#### Script de carga y resultados

Vista general

En este ejemplo, se ha identificado que, debido a un error del equipo, los productos que se fabricaron el 5 de enero eran defectuosos. El usuario final desea un objeto gráfico que muestre, por fecha, el estado de los productos fabricados "defectuosos" o "sin defectos" y el coste de los productos fabricados el 5 de enero.

Abra el editor de carga de datos y agregue el script de carga a continuación a una nueva pestaña.

El script de carga contiene:

* Un conjunto de datos que se carga en una tabla llamada "Productos".

* La tabla contiene los siguientes campos:

  * ID de producto

  * hora de fabricación

  * precio de coste

Script de carga

```

Products:
Load
*
Inline 
[
product_id,manufacture_date,cost_price
9497,'01/01/2022 7:34:46 PM',13.24
9498,'01/01/2022 10:10:22 PM',31.43
9499,'01/02/2022 8:35:54 AM',36.34
9500,'01/03/2022 2:21:53 PM',51.75
9501,'01/04/2022 6:49:38 PM',15.35
9502,'01/04/2022 10:58:34 PM',74.34
9503,'01/05/2022 5:40:49 AM',73.53
9504,'01/05/2022 11:29:38 AM',50.00
9505,'01/05/2022 7:04:57 PM',47.25
9506,'01/06/2022 8:49:09 AM',74.23
];
```

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue este campo como dimensión:

=dayname(manufacture\_date)

Cree las siguientes medidas:

* =if(only(InDay(manufacture\_date,makedate(2022,01,05),0)),'Defective','Faultless')

* =sum(cost\_price)

Establezca el Formato numérico de la medida en Moneda.

En Aspecto, deshabilite los Totales.

Tabla de resultados

| dayname(manufacture\_date) | =if(only(InDay(manufacture\_date,makedate(2022,01,05),0)),'Defective','Faultless') | =sum(cost\_price) |
| --- | --- | --- |
| 01/01/2022 | Sin defectos | 44.67 |
| 01/02/2022 | Sin defectos | 36.34 |
| 01/03/2022 | Sin defectos | 51.75 |
| 01/04/2022 | Sin defectos | 89.69 |
| 01/05/2022 | Defectuoso | 170.78 |
| 01/06/2022 | Sin defectos | 74.23 |

La función inday() devuelve un valor booleano al evaluar las fechas de fabricación de cada uno de los productos. Para cualquier producto fabricado el 5 de enero, la función inday() devuelve un valor booleano de TRUE y marca los productos como "defectuosos". Para cualquier producto que devuelva un valor de FALSO, y que por lo tanto no se haya fabricado ese día, marca los productos como "Sin defectos".