# inday Função de script e de gráfico

Esta função retorna True se timestamp estiver dentro do dia que contém base\_timestamp.

Sintaxe:

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

Diagrama da função `inday`

Diagrama da função `inday`

Diagrama da função `inday`inday ![Diagrama que mostra como a função inday é usada para identificar um segmento de tempo e retornar resultados booleanos com base nesse segmento.](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inday-diagram.png)

A função `inday()` usa o argumento `base_timestamp` para identificar em qual dia cai o carimbo de data/hora. A hora de início do dia é, por padrão, meia-noite, mas você pode alterá-la usando o argumento `day_start` da função `inday()`. Assim que esse dia for definido, a função retornará resultados booleanos ao comparar os valores de carimbo de data/hora prescritos com aquele dia.

Quando usar inday

A função `inday()` retorna um resultado booleano. Normalmente, esse tipo de função será usado como uma condição em um `if expression`. Isso retorna uma agregação ou cálculo dependente de uma data avaliada ter ocorrido no dia do carimbo de data/hora em questão.

Por exemplo, a função `inday()` pode ser usada para identificar todos os equipamentos fabricados em um determinado dia.

Tipo de dados de retorno: Booleano

No Qlik Sense, o valor booleano “true” é representado por -1, e o valor falso é representado por 0.

Argumentos

| Argumento | Descrição |
| --- | --- |
| `timestamp` | A data e hora que você deseja comparar com `base_timestamp`. |
| `base_timestamp` | Data e hora que são usadas para avaliar o carimbo de data/hora. |
| `period_no` | O dia pode ser deslocado por `period_no`. `period_no` é um inteiro, em que o valor 0 indica o dia que contém `base_timestamp`. Valores negativos em `period_no` indicam dias precedentes e valores positivos indicam dias sucessivos. |
| `day_start` | Se você desejar trabalhar com dias que não comecem à meia-noite, indique um deslocamento em fração de um dia em `day_start`, por exemplo, 0,125 para indicar 3h da manhã. |

## Configurações regionais

A menos que especificado de outra forma, os exemplos neste tópico usam o seguinte formato de data: MM/DD/AAAA. O formato de data é especificado na instrução `SET DateFormat` no seu script de carga de dados. A formatação de data padrão pode ser diferente no seu sistema devido às suas configurações regionais e outros fatores. Você pode alterar os formatos nos exemplos abaixo para atender às suas necessidades. Ou pode alterar os formatos no seu script de carregamento para corresponder a esses exemplos. Para obter mais informações, consulte [Modificando configurações regionais para aplicativos e scripts](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm).

As configurações regionais padrão nos aplicativos são baseadas no perfil do usuário. Essas configurações de formato regional não estão relacionadas ao idioma exibido na interface do usuário do Qlik Cloud. O Qlik Cloud será exibido no mesmo idioma do navegador que você está usando.

Se você for um criador de aplicativos, poderá definir a região padrão para os aplicativos que criar. Para obter mais informações, consulte [Definir suas configurações regionais preferidas para criar aplicativos e scripts no Qlik Cloud Analytics](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting).

Exemplos de funções

| Exemplo | Resultado |
| --- | --- |
| `inday` ('01/12/2006 12:23:00 PM', '01/12/2006 12:00:00 AM', 0) | Retorna True |
| ` inday  `('01/12/2006 12:23:00 PM', '01/13/2006 12:00:00 AM', 0) | Retorna False |
| `inday` ('01/12/2006 12:23:00 PM', '01/12/2006 12:00:00 AM', -1) | Retorna False |
| `inday` ('01/11/2006 12:23:00 PM', '01/12/2006 12:00:00 AM', -1) | Retorna True |
| `inday` ('01/12/2006 12:23:00 PM', '01/12/2006 12:00:00 AM', 0, 0.5) | Retorna False |
| `inday` ('01/12/2006 11:23:00 AM', '01/12/2006 12:00:00 AM', 0, 0.5) | Retorna True |

## Exemplo 1 – Instrução de carregamento (script)

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

#### Script de carregamento e resultados

Visão geral

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção.

O script de carregamento contém:

* Um conjunto de dados contendo transações por carimbo de data/hora que é carregado em uma tabela denominada `Transactions`.

* Um campo de data que é fornecido na `variável` do sistema TimeStamp, no formato `(M/D/YYYY h:mm:ss[.fff] TT)`.

* Um carregamento anterior que contém a função `inday()` que é definida como o campo `in_day`.

Script de carregamento

```
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

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* `date`

* `in_day`

Tabela de resultados

| data | 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 |

O campo `in_day` é criado na instrução de carregamento anterior usando a função `inday()` e transmitindo o campo de data, um carimbo de data/hora codificado para 5 de janeiro e um `period_no` de `0` como os argumentos da função.

## Exemplo 2 – period\_no

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

#### Script de carregamento e resultados

Visão geral

O script de carregamento usa o mesmo conjunto de dados e cenário que foram usados no primeiro exemplo.

No entanto, neste exemplo, a tarefa é calcular se a data da transação ocorreu dois dias antes de 5 de janeiro.

Script de carregamento

```
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

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* `date`

* `in_day`

Tabela de resultados

| data | 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 |

Nesse caso, como um `period_no` de `-2` é usado como argumento de deslocamento na função `inday()`, essa determina se cada data de transação ocorreu em 3 de janeiro. Isso pode ser verificado na tabela de saída, onde uma transação retorna um resultado booleano de TRUE.

## Exemplo 3 – day\_start

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

#### Script de carregamento e resultados

Visão geral

O script de carregamento usa o mesmo conjunto de dados e cenário que foram usados nos exemplos anteriores.

No entanto, neste exemplo, a política da empresa é que a jornada de trabalho comece e termine às 7h.

Script de carregamento

```
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

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* `date`

* `in_day`

Tabela de resultados

| data | 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 o argumento `start_day` de 7/24, que é 7h, é usado na função `inday()`, essa determina se cada data de transação ocorreu em 4 de janeiro, a partir das 7h, e em 5 de janeiro, antes das 7h.

Isso pode ser verificado na tabela de saída, onde as transações que ocorrem após 7h em 4 de janeiro retornam um resultado booleano de TRUE, enquanto as transações que ocorrem após 7h em 5 de janeiro retornam um resultado booleano de FALSE.

## Exemplo 4 – Objeto de gráfico

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

#### Script de carregamento e expressão de gráfico

Visão geral

O script de carregamento usa o mesmo conjunto de dados e cenário que foram usados nos exemplos anteriores.

No entanto, neste exemplo, o conjunto de dados permanece inalterado e é carregado no aplicativo. Você calculará para determinar se uma transação ocorrerá em 5 de janeiro, criando uma medida em um objeto de gráfico.

Script de carregamento

```

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

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esse campo como uma dimensão:

* `date`

Para calcular se uma transação ocorre em 5 de janeiro, crie a seguinte medida:

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

Tabela de resultados

| data | 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 |

## Exemplo 5: Cenário

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

#### Script de carregamento e resultados

Visão geral

Neste exemplo, foi identificado que, devido a um erro de equipamento, os produtos fabricados em 5 de janeiro estavam com defeito. O usuário final gostaria de um objeto de gráfico que exiba, por data, o status de quais produtos fabricados estavam com defeito (Defective) ou sem falhas (Faultless), bem como o custo dos produtos fabricados em 5 de janeiro.

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção.

O script de carregamento contém:

* Um conjunto de dados é carregado em uma tabela chamada "Products".

* A tabela contém os seguintes campos:

  * ID do produto

  * manufacture time

  * preço de custo

Script de carregamento

```

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

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esse campo como uma dimensão:

=dayname(manufacture\_date)

Crie as seguintes medidas:

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

* =sum(cost\_price)

Defina o Formato numérico da medida como Dinheiro.

Em Aparência, desative Totais.

Tabela de resultados

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

A função inday() retorna um valor booleano ao avaliar as datas de fabricação de cada um dos produtos. Para qualquer produto fabricado em 5 de janeiro, a função inday() retorna um valor booleano TRUE e marca os produtos como "Defective". Para qualquer produto que retorne um valor FALSE e, portanto, não tenha sido fabricado naquele dia, ele marca os produtos como "Faultless".