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.
Si aucune minute n'est spécifiée, 00 est utilisé.
ss
Seconde sous forme d'entier.
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()
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 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.
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()
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 :
Même ensemble 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.
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
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 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.
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
Vue d'ensemble
Créez un ensemble 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.
Cette page vous a-t-elle aidé ?
Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !