daystart - fonction de script et fonction de graphique
Cette fonction renvoie une valeur correspondant à un horodatage de la première milliseconde du jour figurant dans l'argument time. Le format de sortie par défaut correspond à l'argument TimestampFormat défini dans le script.
DayStart(time[, [period_no[, day_start]])
double
Arguments
Argument
Description
time
Horodatage à évaluer.
period_no
period_no est un entier ou une expression qui aboutit à un entier, où la valeur 0 indique le jour contenant time. 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
Pour spécifier que les jours ne commencent pas à minuit, indiquez un décalage sous forme de fraction d'un jour dans day_start. Par exemple, 0.125 signifie 3 h du matin.
En d'autres termes, pour créer le décalage, divisez l'heure de début par 24 heures. Par exemple, pour qu'une journée commence à 7h00 du matin, utilisez la fraction 7/24.
Cas d'utilisation
La fonction daystart() est couramment utilisée dans le cadre d'une expression lorsque l'utilisateur souhaite que le calcul utilise la fraction du jour qui s'est écoulée jusqu'à présent. Par exemple, cela peut permettre de calculer le total des salaires touchés par les employés jusqu'à ce jour.
Ces exemples utilisent le format d'horodatage 'M/D/YYYY h:mm:ss[.fff] TT'. Le format d'horodatage est indiqué dans l'instruction SET TimeStamp située en haut de votre script de chargement de données. Modifiez le format utilisé dans les exemples en fonction de vos exigences.
Exemples de fonction
Exemple
Résultat
daystart('01/25/2013 4:45:00 PM')
Renvoie 1/25/2013 12:00:00 AM.
daystart('1/25/2013 4:45:00 PM', -1)
Renvoie 1/24/2013 12:00:00 AM.
daystart('1/25/2013 16:45:00',0,0.5
)
Renvoie 1/25/2013 12:00:00 PM.
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 - exemple simple
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 :
Un ensemble de données simple contenant une liste de dates, qui est chargé dans une table nommée Calendar.
La variable système TimeStampFormat par défaut ((M/D/YYYY h:mm:ss[.fff] TT) est utilisée.
Un instruction preceding load qui crée un champ supplémentaire, appelé SOD_timestamp, via la fonction daystart().
Outre la date, aucun paramètre supplémentaire n'est fourni à la fonction.
Script de chargement
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';
Calendar:
Load
date,
daystart(date) as SOD_timestamp
;
Load
date
Inline
[
date
03/11/2022 1:47:15 AM
03/12/2022 4:34:58 AM
03/13/2022 5:15:55 AM
03/14/2022 9:25:14 AM
03/15/2022 10:06:54 AM
03/16/2022 10:44:42 AM
03/17/2022 11:33:30 AM
03/18/2022 12:58:14 PM
03/19/2022 4:23:12 PM
03/20/2022 6:42:15 PM
03/21/2022 7:41:16 PM
];
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
date
SOD_timestamp
Tableau de résultats
date
SOD_timestamp
03/11/2022 1:47:15 AM
3/11/2022 12:00:00 AM
03/12/2022 4:34:58 AM
3/12/2022 12:00:00 AM
03/13/2022 5:15:55 AM
3/13/2022 12:00:00 AM
03/14/2022 9:25:14 AM
3/14/2022 12:00:00 AM
03/15/2022 10:06:54 AM
3/15/2022 12:00:00 AM
03/16/2022 10:44:42 AM
3/16/2022 12:00:00 AM
03/17/2022 11:33:30 AM
3/17/2022 12:00:00 AM
03/18/2022 12:58:14 PM
3/18/2022 12:00:00 AM
03/19/2022 4:23:12 PM
3/19/2022 12:00:00 AM
03/20/2022 6:42:15 PM
3/20/2022 12:00:00 AM
03/21/2022 7:41:16 PM
3/21/2022 12:00:00 AM
Comme le montre le tableau ci-dessus, l'horodatage de fin de journée est généré pour chaque date de notre ensemble de données. L'horodatage se présente au format de la variable système TimestampFormat M/D/YYYY h:mm:ss[.fff] TT.
Exemple 2 - period_no
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 amendes de stationnement, qui est chargé dans une table nommée Fines. L'ensemble de données inclut les champs suivants :
id
due_date
number_plate
amount
Chargement précédent utilisant la fonction daystart() et fournissant l'ensemble des trois paramètres suivants : time, period_no et day_start. Ce chargement précédent crée les deux nouveaux champs de date suivants :
Un champ de date early_repayment_period, qui commence sept jours avant la date d'échéance de paiement.
Un champ de date late_penalty_period, qui commence quatorze jours après la date d'échéance de paiement.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
due_date
early_repayment_period
late_penalty_period
Tableau de résultats
due_date
early_repayment_period
late_penalty_period
02/11/2022 9:25:14 AM
2/4/2022 12:00:00 AM
2/25/2022 12:00:00 AM
03/25/2022 10:06:54 AM
3/18/2022 12:00:00 AM
4/8/2022 12:00:00 AM
04/14/2022 10:44:42 AM
4/7/2022 12:00:00 AM
4/28/2022 12:00:00 AM
06/28/2022 11:33:30 AM
6/21/2022 12:00:00 AM
7/12/2022 12:00:00 AM
08/15/2022 12:58:14 PM
8/8/2022 12:00:00 AM
8/29/2022 12:00:00 AM
11/16/2022 4:23:12 PM
11/9/2022 12:00:00 AM
11/30/2022 12:00:00 AM
01/17/2023 6:42:15 PM
1/10/2023 12:00:00 AM
1/31/2023 12:00:00 AM
03/22/2023 7:41:16 PM
3/15/2023 12:00:00 AM
4/5/2023 12:00:00 AM
Les valeurs des nouveaux champs se présentent au format TimestampFormat M/DD/YYYY tt. Étant donné que la fonction daystart() a été utilisée, les valeurs d'horodatage indiquent toutes la première milliseconde de la journée.
Les valeurs de période de remboursement anticipé sont sept jours avant la date d'échéance, car le deuxième argument transmis dans la fonction daystart() est négatif.
Les valeurs de période de remboursement tardif sont quatorze jours après la date d'échéance, car le deuxième argument transmis dans la fonction daystart() est positif.
Exemple 3 - day_start
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 de l'exemple précédent.
Même chargement précédent que celui de l'exemple précédent.
Dans cet exemple, nous décidons que la journée de travail commence et se termine tous les jours à 7h00 le matin.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
due_date
early_repayment_period
late_penalty_period
Tableau de résultats
due_date
early_repayment_period
late_penalty_period
02/11/2022
2/3/2022 7:00:00 AM
2/24/2022 7:00:00 AM
03/25/2022
3/17/2022 7:00:00 AM
4/7/2022 7:00:00 AM
04/14/2022
4/6/2022 7:00:00 AM
4/27/2022 7:00:00 AM
06/28/2022
6/20/2022 7:00:00 AM
7/11/2022 7:00:00 AM
08/15/2022
8/7/2022 7:00:00 AM
8/28/2022 7:00:00 AM
11/16/2022
11/8/2022 7:00:00 AM
11/29/2022 7:00:00 AM
01/17/2023
1/9/2023 7:00:00 AM
1/30/2023 7:00:00 AM
03/22/2023
3/14/2023 7:00:00 AM
4/4/2023 7:00:00 AM
L'horodatage des dates est maintenant de 7h00 du matin, car la valeur de l'argument day_start transmise dans la fonction daystart() était 7/24. Cela fixe le début de la journée à 7h00 du matin.
Étant donné que le champ due_date n'a pas d'horodatage, il est traité comme minuit (12:00 AM), qui fait par conséquent encore partie de la journée précédente, puisque les journées commencent et se terminent à 7h00 du matin. Par conséquent, la période de remboursement anticipé d'une amende due le 11 février commence le 3 février à 7h00 du matin.
Exemple 4 - 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.
Cet exemple utilise le même ensemble de données et le même scénario que ceux de l'exemple précédent.
Cependant, seule la table Fines d'origine est chargée dans l'application, avec les deux valeurs de dates d'échéance supplémentaires calculées dans un objet graphique.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ce champ comme dimension : due_date.
Pour créer le champ early_repayment_period, créez la mesure suivante.
=daystart(due_date,-7,7/24)
Pour créer le champ late_penalty_period, créez la mesure suivante :
=daystart(due_date,14,7/24)
Tableau de résultats
due_date
=daystart(due_date,-7,7/24)
=daystart(due_date,14,7/24)
02/11/2022 9:25:14 AM
2/4/2022 7:00:00 AM
2/25/2022 7:00:00 AM
03/25/2022 10:06:54 AM
3/18/2022 7:00:00 AM
4/8/2022 7:00:00 AM
04/14/2022 10:44:42 AM
4/7/2022 7:00:00 AM
4/28/2022 7:00:00 AM
06/28/2022 11:33:30 AM
6/21/2022 7:00:00 AM
7/12/2022 7:00:00 AM
08/15/2022 12:58:14 PM
8/8/2022 7:00:00 AM
8/29/2022 7:00:00 AM
11/16/2022 4:23:12 PM
11/9/2022 7:00:00 AM
11/30/2022 7:00:00 AM
01/17/2023 6:42:15 PM
1/10/2023 7:00:00 AM
1/31/2023 7:00:00 AM
03/22/2023 7:41:16 PM
3/15/2023 7:00:00 AM
4/5/2023 7:00:00 AM
Les valeurs des nouveaux champs se présentent au format TimestampFormat M/D/YYYY h:mm:ss[.fff] TT. Étant donné que la fonction daystart() a été utilisée, les valeurs d'horodatage correspondent à la première milliseconde de la journée.
Les valeurs de période de remboursement anticipé sont sept jours avant la date d'échéance, car le deuxième argument transmis dans la fonction daystart() était négatif.
Les valeurs de période de remboursement tardif sont quatorze jours après la date d'échéance, car le deuxième argument transmis dans la fonction daystart() était positif.
L'horodatage des dates est de 7h00 du matin, car la valeur du troisième argument transmise dans la fonction daystart(), day_start, était 7/24.
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 !