# maketime - fonction de script et fonction de graphique

Cette fonction renvoie une heure calculée à partir de l'heure hh, de la minute mm et de la seconde ss.

MakeTime(hh [ , mm [ , ss ] ])

double

Arguments

| Argument | Description |
| --- | --- |
| hh | Heure sous forme d'entier. |
| mm | Minute sous forme d'entier.<br><br>Si aucune minute n'est spécifiée, 00 est utilisé. |
| ss | Seconde sous forme d'entier.<br><br>Si aucune seconde n'est spécifiée, 00 est utilisé. |

## Cas d'utilisation

La fonction `maketime()` est généralement utilisée dans le script pour la génération de données afin de produire un champ time (heure). Parfois, lorsque le champ time est dérivé du texte d'entrée, cette fonction peut être utilisée pour obtenir l'heure via ses composants.

Ces exemples utilisent le format horaire `h:mm:ss`. Le format d'heure est indiqué dans l'instruction `SET TimeFormat` située en haut de votre script de chargement de données. Modifiez le format des exemples en fonction de vos besoins.

Exemples de fonction

| Exemple | Résultat |
| --- | --- |
| `maketime(22)` | Renvoie 22:00:00. |
| `maketime(22, 17)` | Renvoie 22:17:00. |
| `maketime(22,17,52 )` | Renvoie 22:17:52. |

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

## Exemple 1 – maketime()

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/maketime.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 à une nouvelle section.

Le script de chargement contient :

* Jeu de données contenant un ensemble de transactions, chargé dans une table appelée `Transactions`.

* Heures de transaction fournies sur trois champs : `hours`, `minutes` et `seconds`.

* Création d'un champ, `transaction_time`, qui renvoie l'heure au format de la variable système `TimeFormat`.

Script de chargement

```
SET TimeFormat='h:mm:ss TT';

Transactions:
    Load
        *,
        maketime(transaction_hour, transaction_minute, transaction_second) as transaction_time
        ; 
Load * Inline [
transaction_id, transaction_hour, transaction_minute, transaction_second, transaction_amount, transaction_quantity, customer_id
3750, 18, 43, 30, 12423.56, 23, 2038593
3751, 6, 32, 07, 5356.31, 6, 203521
3752, 12, 09, 16, 15.75, 1, 5646471
3753, 21, 43, 41, 7, 3036491
3754, 17, 55, 22, 21484.21, 1356, 049681
3756, 2, 52, 22, -59.18, 2, 2038593
3757, 9, 25, 23, 3177.4, 21, 203521
];
```

Résultats

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

* `transaction_hour`

* `transaction_minute`

* `transaction_second`

* `transaction_time`

Tableau de résultats

| transaction\_hour | transaction\_minute | transaction\_second | transaction\_time |
| --- | --- | --- | --- |
| 2 | 52 | 22 | 2:52:22 AM |
| 6 | 32 | 07 | 6:32:07 AM |
| 9 | 25 | 23 | 9:25:23 AM |
| 12 | 09 | 16 | 12:09:16 PM |
| 17 | 55 | 22 | 5:55:22 PM |
| 18 | 43 | 30 | 6:43:30 PM |
| 21 | 43 | 41 | 9:43:41 PM |

Le champ `transaction_time` est créé dans l'instruction preceding load via la fonction `maketime()` et en transmettant les champs hour, minute et second comme arguments de la fonction.

La fonction combine ensuite ces valeurs et les convertit en un champ time, renvoyant les résultats au format horaire de la variable système `TimeFormat`.

## Exemple 2 – fonction time()

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/maketime.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 à une nouvelle section.

Le script de chargement contient :

* Même jeu de données et même scénario que ceux du premier exemple.

* Création d'un champ, `transaction_time`, qui vous permettra d'afficher les résultats au format horaire sur 24 heures sans modifier la variable système `TimeFormat`.

Script de chargement

```
SET TimeFormat='h:mm:ss TT';

Transactions:
    Load
        *,
        time(maketime(transaction_hour, transaction_minute, transaction_second),'h:mm:ss') as transaction_time
        ; 
Load * Inline [
transaction_id, transaction_hour, transaction_minute, transaction_second, transaction_amount, transaction_quantity, customer_id
3750, 18, 43, 30, 12423.56, 23, 2038593
3751, 6, 32, 07, 5356.31, 6, 203521
3752, 12, 09, 16, 15.75, 1, 5646471
3753, 21, 43, 41, 7, 3036491
3754, 17, 55, 22, 21484.21, 1356, 049681
3756, 2, 52, 22, -59.18, 2, 2038593
3757, 9, 25, 23, 3177.4, 21, 203521
];
```

Résultats

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

* `transaction_hour`

* `transaction_minute`

* `transaction_second`

* `transaction_time`

Tableau de résultats

| transaction\_hour | transaction\_minute | transaction\_second | transaction\_time |
| --- | --- | --- | --- |
| 2 | 52 | 22 | 2:52:22 |
| 6 | 32 | 07 | 6:32:07 |
| 9 | 25 | 23 | 9:25:23 |
| 12 | 09 | 16 | 12:09:16 |
| 17 | 55 | 22 | 17:55:22 |
| 18 | 43 | 30 | 18:43:30 |
| 21 | 43 | 41 | 21:43:41 |

Dans cet exemple, la fonction `maketime()` est imbriquée dans la fonction `time()`. Le deuxième argument de la fonction `time()` définit le format des résultats de la fonction `maketime()` sur le format `h:mm:ss` requis.

## Exemple 3 – exemple objet graphique

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

#### Script de chargement et expression de graphique

Vue d'ensemble

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

Le script de chargement contient :

* Jeu de données contenant un ensemble de transactions, chargé dans une table appelée `Transactions`.

* Heures de transaction fournies sur deux champs : `hours` et `minutes`.

* Création d'un champ, `transaction_time`, qui renvoie l'heure au format de la variable système `TimeFormat`.

Créez une mesure d'objet graphique, `transaction_time`, qui renvoie une heure au format `h:mm:ss TT`.

Script de chargement

```
SET TimeFormat='h:mm:ss TT';

Transactions:
Load * Inline [
transaction_id, transaction_hour, transaction_minute, transaction_amount, transaction_quantity, customer_id
3750, 18, 43, 12423.56, 23, 2038593
3751, 6, 32, 5356.31, 6, 203521
3752, 12, 09, 15.75, 1, 5646471
3753, 21, 43, 7, 3036491
3754, 17, 55, 21484.21, 1356, 049681
3756, 2, 52, -59.18, 2, 2038593
3757, 9, 25, 3177.4, 21, 203521
];
```

Résultats

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

* `transaction_hour`

* `transaction_minute`

Pour calculer la valeur `transaction_time`, créez la mesure suivante :

`=maketime(transaction_hour,transaction_minute)`

Tableau de résultats

| transaction\_hour | transaction\_minute | =maketime(transaction\_hour, transaction\_minute) |
| --- | --- | --- |
| 2 | 52 | 2:52:00 AM |
| 6 | 32 | 6:32:00 AM |
| 9 | 25 | 9:25:00 AM |
| 12 | 09 | 12:09:00 PM |
| 17 | 55 | 5:55:00 PM |
| 18 | 43 | 6:43:00 PM |
| 21 | 43 | 9:43:00 PM |

La mesure `transaction_time` est créée dans l'objet graphique via la fonction `maketime()` et en transmettant les champs hour et minute comme arguments de la fonction.

La fonction combine ensuite ces valeurs et les secondes sont supposées être 00. Ces valeurs sont ensuite converties en un champ time, renvoyant les résultats au format de la variable système `TimeFormat`.

## Exemple 4 – scénario

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

#### Script de chargement et expression de graphique

Vue d'ensemble

Créez un jeu de données Calendar pour le mois de janvier 2022, divisé en incréments de huit heures.

Script de chargement

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

tmpCalendar:
	load 
		*
    where year(date)=2022;
load
	date(recno()+makedate(2021,12,31)) as date
AutoGenerate 31;

Left join(tmpCalendar)
load
	maketime((recno()-1)*8,00,00) as time
autogenerate 3;

Calendar:
load
	timestamp(date + time) as timestamp
resident tmpCalendar;

drop table tmpCalendar;
```

Résultats

Tableau de résultats

| timestamp |
| --- |
| 1/1/2022 12:00:00 AM |
| 1/1/2022 8:00:00 AM |
| 1/1/2022 4:00:00 PM |
| 1/2/2022 12:00:00 AM |
| 1/2/2022 8:00:00 AM |
| 1/2/2022 4:00:00 PM |
| 1/3/2022 12:00:00 AM |
| 1/3/2022 8:00:00 AM |
| 1/3/2022 4:00:00 PM |
| 1/4/2022 12:00:00 AM |
| 1/4/2022 8:00:00 AM |
| 1/4/2022 4:00:00 PM |
| 1/5/2022 12:00:00 AM |
| 1/5/2022 8:00:00 AM |
| 1/5/2022 4:00:00 PM |
| 1/6/2022 12:00:00 AM |
| 1/6/2022 8:00:00 AM |
| 1/6/2022 4:00:00 PM |
| 1/7/2022 12:00:00 AM |
| 1/7/2022 8:00:00 AM |
| 1/7/2022 4:00:00 PM |
| 1/8/2022 12:00:00 AM |
| 1/8/2022 8:00:00 AM |
| 1/8/2022 4:00:00 PM |
| 1/9/2022 12:00:00 AM |
| + 68 lignes supplémentaires |

La fonction autogenerate initiale crée un calendrier contenant l'ensemble des dates de janvier dans une table appelée tmpCalendar.

Une deuxième table, contenant trois enregistrements, est créée. Pour chaque enregistrement, l'argument recno() – 1 est pris (valeurs 0, 1 et 2) et le résultat est multiplié par 8. Cela génère les valeurs 0, 8 et 16. Ces valeurs sont utilisées comme paramètre horaire dans une fonction maketime(), avec les valeurs minute et second définies sur 0. En conséquence, la table contient trois champs horaires : 12:00:00 AM, 8:00:00 AM et 4:00:00 PM.

Cette table est jointe à la table tmpCalendar. Étant donné qu'il n'existe pas de champs correspondants entre les deux tables pour la jointure, les lignes des heures sont ajoutées à chaque ligne de date. C'est pourquoi chaque ligne de date est maintenant répétée trois fois avec chaque valeur horaire.

Pour finir, la table Calendar est créée à partir d'une instruction resident load appliquée à la table tmpCalendar. Les champs date et time sont concaténés et imbriqués dans la fonction timestamp() pour créer le champ timestamp (horodatage).

La table tmpCalendar est ensuite abandonnée.