# inday - fonction de script et fonction de graphique

Cette fonction renvoie la valeur True si l'argument timestamp se trouve dans le jour comprenant l'argument base\_timestamp.

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

Diagramme de la fonction `inday`

Diagramme de la fonction `inday`

Diagramme de la fonction `inday`inday ![Diagramme montrant comme la fonction inday est utilisée pour identifier un segment de temps et renvoyer des résultats booléens basés sur ce segment.](https://help.qlik.com/fr-FR/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-inday-diagram.png)

La fonction `inday()` utilise l'argument `base_timestamp` pour identifier le jour de l'horodatage. L'heure de début du jour est, par défaut, minuit ; mais vous pouvez modifier l'heure de début du jour via l'argument `day_start` de la fonction `inday()`. Une fois ce jour défini, la fonction renverra des résultats booléens lors de la comparaison des valeurs d'horodatage prescrites au jour en question.

Cas d'utilisation

La fonction `inday()` renvoie un résultat booléen. Ce type de fonction sera généralement utilisé comme condition dans une expression `if expression`. Cela renvoie une agrégation ou un calcul, suivant qu'une date évaluée s'est produite ou non au cours du jour de l'horodatage en question.

Par exemple, la fonction `inday()` peut être utilisée pour identifier l'ensemble des équipements fabriqués un jour donné.

booléen

Dans Qlik Sense, la valeur booléenne true est représentée par -1 et la valeur false par 0.

Arguments

| Argument | Description |
| --- | --- |
| `timestamp` | Date et heure à comparer à `base_timestamp`. |
| `base_timestamp` | Date et heure utilisées pour évaluer l'horodatage. |
| `period_no` | Il est possible de décaler le jour à l'aide de l'argument `period_no`. `period_no` est un entier, où la valeur 0 indique le jour comprenant l'argument `base_timestamp`. Les valeurs négatives de l'argument `period_no` indiquent les jours passés tandis que les valeurs positives désignent les jours à venir. |
| `day_start` | Si vous souhaitez utiliser des jours qui ne commencent pas à minuit, indiquez un décalage sous forme de fraction de jour dans l'argument `day_start`, par exemple 0.125 pour indiquer 3 heures du matin. |

## Paramètres régionaux

Sauf indication contraire, les exemples de cette rubrique utilisent le format de date suivant : MM/JJ/AAAA. Le format de date est indiqué dans l'instruction `SET DateFormat` de votre script de chargement de données. Le format de date par défaut peut être différent dans votre système en raison de vos paramètres régionaux et d'autres facteurs. Vous pouvez modifier les formats utilisés dans les exemples ci-dessous en fonction de vos besoins. Ou vous pouvez modifier les formats utilisés dans votre script de chargement pour qu'ils correspondent à ceux de ces exemples.

Les paramètres régionaux par défaut des applications sont basés sur les paramètres système régionaux de l'ordinateur ou du serveur sur lequel Qlik Sense est installé. Si le serveur Qlik Sense auquel vous accédez est configuré sur la Suède, l'éditeur de chargement de données utilisera les paramètres régionaux suédois pour les dates, l'heure et la devise. Ces paramètres de format régionaux ne sont pas liés à la langue affichée dans l'interface utilisateur Qlik Sense. Qlik Sense sera affiché dans la même langue que celle du navigateur que vous utilisez.

Exemples de fonction

| Exemple | Résultat |
| --- | --- |
| `inday` ('01/12/2006 12:23:00 PM', '01/12/2006 12:00:00 AM', 0) | Renvoie True |
| ` inday  `('01/12/2006 12:23:00 PM', '01/13/2006 12:00:00 AM', 0) | Renvoie False |
| `inday` ('01/12/2006 12:23:00 PM', '01/12/2006 12:00:00 AM', -1) | Renvoie False |
| `inday` ('01/11/2006 12:23:00 PM', '01/12/2006 12:00:00 AM', -1) | Renvoie True |
| `inday` ('01/12/2006 12:23:00 PM', '01/12/2006 12:00:00 AM', 0, 0.5) | Renvoie False |
| `inday` ('01/12/2006 11:23:00 AM', '01/12/2006 12:00:00 AM', 0, 0.5) | Renvoie True |

## Exemple 1 – Instruction LOAD (script)

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

#### Script de chargement et résultats

Vue d'ensemble

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.

Le script de chargement contient :

* Ensemble de données contenant des transactions par horodatage chargé dans une table appelée `Transactions`.

* Champ date fourni dans la variable système `TimeStamp` au format `(M/D/YYYY h:mm:ss[.fff] TT)`.

* Instruction preceding load contenant la fonction `inday()` définie sous forme de champ `in_day`.

Script de chargement

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

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :

* `date`

* `in_day`

Tableau de résultats

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

Le champ `in_day` est créé dans l'instruction preceding load via la fonction `inday()` et en transmettant le champ date, un horodatage codé en dur pour le 5 janvier et une valeur `period_no` égale à `0` comme arguments de la fonction.

## Exemple 2 – period\_no

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

#### Script de chargement et résultats

Vue d'ensemble

Le script de chargement utilise le même ensemble de données et le même scénario que ceux utilisés dans le premier exemple.

Cependant, dans cet exemple, la tâche consiste à calculer si la date de transaction a eu lieu deux jours avant le 5 janvier.

Script de chargement

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

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :

* `date`

* `in_day`

Tableau de résultats

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

Dans cet instance, étant donné que la valeur `period_no` de `-2` est utilisée comme argument de décalage dans la fonction `inday()`, la fonction détermine si chaque date de transaction a eu lieu le 3 janvier. Cela peut être vérifié dans le tableau de résultats, dans lequel une transaction renvoie un résultat booléen égal à TRUE.

## Exemple 3 – day\_start

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

#### Script de chargement et résultats

Vue d'ensemble

Le script de chargement utilise le même ensemble de données et le même scénario que ceux utilisés dans les exemples précédents.

Cependant, dans cet exemple, la politique de l'entreprise détermine que la journée de travail commence et se termine à 7h00 du matin.

Script de chargement

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

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :

* `date`

* `in_day`

Tableau de résultats

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

Étant donné que l'argument `start_day` de 7/24, qui est 7h00 du matin, est utilisé dans la fonction `inday()`, la fonction détermine si chaque date de transaction a eu lieu le 4 janvier à partir de 7h00 du matin et le 5 janvier avant 7h00 du matin.

Cela peut être vérifié dans le tableau de résultats dans lequel les transactions qui ont lieu après 7h00 du matin le 4 janvier renvoient un résultat booléen égal à TRUE, tandis que les transactions qui ont lieu après 7h00 du matin le 5 janvier renvoient un résultat booléen égal à FALSE.

## Exemple 4 – Objet graphique

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

#### Script de chargement et expression de graphique

Vue d'ensemble

Le script de chargement utilise le même ensemble de données et le même scénario que ceux utilisés dans les exemples précédents.

Cependant, dans cet exemple, l'ensemble de données est le même et chargé dans l'application. Vous allez effectuer un calcul pour déterminer si une transaction a lieu le 5 janvier en créant une mesure dans un objet graphique.

Script de chargement

```

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

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ce champ comme dimension :

* `date`

Pour calculer si une transaction a lieu le 5 janvier, créez la mesure suivante :

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

Tableau de résultats

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

## Exemple 5 – Scénario

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

#### Script de chargement et résultats

Vue d'ensemble

Dans cet exemple, il a été identifié que suite à une erreur d'équipement, des produits fabriqués le 5 janvier étaient défectueux. L'utilisateur final souhaite un objet graphique qui affiche, par date, l'état des produits fabriqués 'defective' (défectueux) ou 'faultless' (corrects) et le coût des produits fabriqués le 5 janvier.

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.

Le script de chargement contient :

* Un ensemble de données chargé dans une table appelée 'Products' (Produits).

* La table contient les champs suivants :

  * ID de produit

  * Heure de fabrication

  * Coût

Script de chargement

```

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

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ce champ comme dimension :

=dayname(manufacture\_date)

Créez les mesures suivantes :

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

* =sum(cost\_price)

Définissez le Formatage des nombres des mesures sur Money (Devise).

Sous Aspect, désactivez Totals (Totaux).

Tableau de résultats

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

La fonction inday() renvoie une valeur booléenne lors de l'évaluation des dates de fabrication de chacun des produits. Pour tout produit fabriqué le 5 janvier, la fonction inday() renvoie une valeur booléenne égal à TRUE et identifie les produits comme ‘Defective’ (défectueux). Tout produit renvoyant une valeur égale à FALSE, et par conséquent non fabriqué le jour en question, est identifié comme ‘Faultless’ (correct).