# inday Funzione per script e grafici

Questa funzione restituisce True se timestamp ricade all'interno del giorno contenente base\_timestamp.

Sintassi:

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

Schema della funzione `inday`.

Schema della funzione `inday`.

Schema della funzione `inday`inday. ![Schema che mostra come la funzione inday viene utilizzata per identificare un segmento di tempo e restituire risultati booleani basati su tale segmento.](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inday-diagram.png)

La funzione `inday()` utilizza l'argomento `base_timestamp` per identificare il giorno in cui cade il timestamp. L'ora di inizio del giorno è, per impostazione predefinita, la mezzanotte; ma è possibile modificare l'ora di inizio del giorno utilizzando l'argomento `day_start` della funzione `inday()`. Una volta definito il giorno, la funzione restituisce risultati booleani quando si confrontano i valori dei timestamp prescritti con quel giorno.

Quando usare inday

La funzione `inday()` restituisce un risultato booleano. In genere, questo tipo di funzione viene utilizzato come condizione in un file `if expression`. Restituisce un'aggregazione o un calcolo che dipende dal fatto che una data valutata si sia verificata nel giorno del timestamp in questione.

Ad esempio, la funzione `inday()` può essere utilizzata per identificare tutte le apparecchiature prodotte in un determinato giorno.

Tipo di dati restituiti: Boolean

In Qlik Sense, il valore booleano vero è rappresentato da -1 e il valore falso è rappresentato da 0.

Argomenti

| Argomento | Descrizione |
| --- | --- |
| `timestamp` | La data e l'ora che si desidera confrontare con `base_timestamp`. |
| `base_timestamp` | La data e l'ora utilizzate per valutare l'indicatore temporale. |
| `period_no` | Il giorno può essere differito mediante `period_no`. `period_no` è un numero intero, in cui il valore 0 indica il giorno che contiene `base_timestamp`. I valori negativi di `period_no` indicano i giorni precedenti, mentre i valori positivi indicano i giorni successivi. |
| `day_start` | Se si intende utilizzare giorni che non inizino alla mezzanotte, indicare un differimento come frazione di un giorno in `day_start`, ad esempio 0,125 per indicare le 3 del mattino. |

## Impostazioni locali

Se non diversamente specificato, gli esempi di questo argomento utilizzano il seguente formato di data: MM/DD/YYYY. Il formato della data viene specificato nell'istruzione `SET DateFormat` nello script di caricamento dei dati. La formattazione predefinita della data potrebbe essere diversa nel proprio sistema, a causa delle impostazioni regionali e di altri fattori. È possibile modificare i formati degli esempi seguenti in base alle proprie esigenze. In alternativa, è possibile modificare i formati nel proprio script di caricamento per adattarli a questi esempi. Per ulteriori informazioni, vedere [Modifica delle impostazioni internazionali per applicazioni e script](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm).

Le impostazioni regionali predefinite nelle applicazioni si basano sul profilo utente. Queste impostazioni di formato regionale non riguardano la lingua visualizzata nell'interfaccia utente Qlik Cloud. Qlik Cloud verrà visualizzato nella stessa lingua del browser utilizzato.

Se si è un creatore di applicazioni, è possibile impostare la regione predefinita per le applicazioni che si creano. Per ulteriori informazioni, vedere [Regolazione delle impostazioni internazionali preferite per la creazione di app e script in Qlik Cloud Analytics](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting).

Esempi di funzioni

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

## Esempio 1 – Istruzione LOAD (script)

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

#### Script di caricamento e risultati

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati contenente transazioni per timestamp, caricato in una tabella chiamata `Transactions`.

* Un campo data fornito nel formato `TimeStamp` della variabile di sistema `(M/D/YYYY h:mm:ss[.fff] TT)`.

* Un caricamento precedente che contiene la funzione `inday()` impostata come campo `in_day`.

Script di caricamento

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

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

* `date`

* `in_day`

Tabella dei risultati

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

Il campo `in_day` viene creato nell'istruzione di caricamento precedente mediante l'uso della funzione `inday()` e trasferendo il campo data, un timestamp con hard coding per il 5 gennaio e un `period_no` di `0` come argomenti della funzione.

## Esempio 2 – period\_no

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

#### Script di caricamento e risultati

Panoramica

Lo script di caricamento utilizza lo stesso set di dati e lo stesso scenario utilizzati nel primo esempio.

Tuttavia, in questo esempio, l'attività viene calcolata se la data di transazione è occorsa due giorni prima del 5 gennaio.

Script di caricamento

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

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

* `date`

* `in_day`

Tabella dei risultati

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

In questa istanza, dato che un `period_no` di `-2` è stato utilizzato come argomento offset nella funzione `inday()`, la funzione determina se ciascuna data di transazione è avvenuta il 3 gennaio. Ciò può essere verificato nella tabella di output in cui una transazione restituisce un risultato booleano di TRUE.

## Esempio 3 – day\_start

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

#### Script di caricamento e risultati

Panoramica

Lo script di caricamento utilizza lo stesso set di dati e lo stesso scenario utilizzati negli esempi precedenti.

Tuttavia, in questo esempio, la policy aziendale indica che la giornata lavorativa inizia e termina alle 7:00.

Script di caricamento

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

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

* `date`

* `in_day`

Tabella dei risultati

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

Dato che l'argomento `start_day` di 7/24, che corrisponde alle 7:00, è usato nella funzione `inday()`, la funzione determina se la data di ciascuna transazione è avvenuta il 4 gennaio dalle 7:00 e il 5 gennaio prima delle 7:00.

Ciò può essere verificato nella tabella di output dove le transazioni che hanno avuto luogo dopo le 7:00 il 4 gennaio restituiscono un risultato booleano di TRUE mentre le transazioni che hanno avuto luogo dopo le 7:00 il 5 gennaio restituiscono un risultato booleano di FALSE.

## Esempio 4 - Oggetto grafico

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

#### Script di caricamento ed espressione del grafico

Panoramica

Lo script di caricamento utilizza lo stesso set di dati e lo stesso scenario utilizzati negli esempi precedenti.

Tuttavia, in questo esempio, il set di dati è invariato e viene caricato nell'applicazione. Si calcolerà per determinare se una transazione è avvenuta il 5 gennaio creando una misura in un oggetto grafico.

Script di caricamento

```

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

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione:

* `date`

Per calcolare se una transazione è avvenuta il 5 gennaio, creare la seguente misura:

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

Tabella dei risultati

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

## Esempio 5 – Scenario

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

#### Script di caricamento e risultati

Panoramica

In questo esempio, è stato identificato che, a causa di un errore delle apparecchiature, i prodotti fabbricati il 5 gennaio erano difettosi. L'utente finale desidera un oggetto grafico che visualizzi, per data, lo stato dei prodotti fabbricati "difettosi" o "senza difetti" e il costo dei prodotti fabbricati il 5 gennaio.

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati che viene caricato in una tabella chiamata "Prodotti".

* La tabella contiene i seguenti campi:

  * ID prodotto

  * ora di produzione

  * prezzo di costo

Script di caricamento

```

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

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione:

=dayname(manufacture\_date)

Creare le seguenti misure:

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

* =sum(cost\_price)

Impostare la misura Formattazione numero su Denaro.

In Aspetto, disattivare Totals.

Tabella dei risultati

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

La funzione inday() restituisce un valore booleano quando valuta le date di produzione di ciascun prodotto. Per qualsiasi prodotto fabbricato il 5 gennaio, la funzione inday() restituisce un valore booleano TRUE e contrassegna i prodotti come "difettosi". Per tutti i prodotti che restituiscono un valore FALSE, e che quindi non sono stati fabbricati in quel giorno, vengono contrassegnati come "non difettosi".