Accéder au contenu principal

inmonthstodate - fonction de script et fonction de graphique

Cette fonction permet de déterminer si un horodatage tombe dans la partie d'une période (mois, période de deux mois, trimestre, période de quatre mois ou semestre) jusqu'à la dernière milliseconde incluse de base_date. Il est également possible de déterminer si l'horodatage se situe dans une période passée ou future.

 

InMonths (n_months, timestamp, base_date, period_no[, first_month_of_year ])

Type de données renvoyé : booléen

 

Arguments InMonthsToDate
Argument Description
n_months

Nombre de mois définissant la période. Entier ou expression qui aboutit à un entier devant correspondre à l'une des valeurs suivantes : 1 (équivalant à la fonction inmonth()), 2 (période de deux mois), 3 (équivalant à la fonction inquarter()), 4 (période de quatre mois) ou 6 (semestre).

timestamp Date à comparer à base_date.
base_date Date utilisée pour évaluer la période.
period_no

Il est possible de décaler la période à l'aide de l'argument period_no, d'un entier ou d'une expression aboutissant à un entier, où la valeur 0 indique la période comprenant l'argument base_date. Les valeurs négatives spécifiées pour period_no indiquent les périodes passées tandis que les valeurs positives désignent les périodes à venir.

first_month_of_year

Si vous voulez utiliser des exercices (financiers) qui ne commencent pas en janvier, indiquez une valeur comprise entre 2 et 12 dans l'argument first_month_of_year.

 

Ces exemples utilisent le format de date DD/MM/YYYY. Le format de date est indiqué dans l'instruction SET DateFormat située en haut de votre script de chargement. Modifiez le format utilisé dans les exemples en fonction de vos exigences.

 

inmonthstodate(4, '25/01/2013', '25/04/2013', 0)

Renvoie True. Car la valeur de timestamp, soit le 25/01/2013, est comprise dans la période de quatre mois allant du 01/01/2013 à la fin du 25/04/2013, qui comprend la valeur de base_date, soit le 25/04/2013.

 

inmonthstodate(4, '26/04/2013', '25/04/2006', 0)

Renvoie False. Car le 26/04/2013 se trouve hors de la période indiquée dans l'exemple ci-dessus.

 

inmonthstodate(4, '25/09/2005', '01/02/2006', -1)

Renvoie True. Car la valeur de period_no, soit -1, entraîne le décalage de la période de recherche de quatre mois en arrière (la valeur de n-months), ce qui définit la période de recherche du 01/09/2005 au 01/02/2006.

 

inmonthstodate(4, '25/04/2006', '01/06/2006', 0, 3)

Renvoie True. Car la valeur de first_month_of_year est configurée sur 3, ce qui définit la période de recherche du 01/03/2006 au 01/06/2006 au lieu du 01/05/2006 au 01/06/2006.

 

Ajoutez l'exemple de script à votre document et exécutez-le. Ensuite, ajoutez au moins les champs répertoriés dans la colonne des résultats à une feuille de votre document afin de visualiser le résultat.

Cet exemple permet de vérifier si la date de la facture figurant dans la table tombe dans la partie de la période de deux mois qui s'étend jusqu'à la valeur de base_date (incluse) avec un décalage de quatre périodes de deux mois vers l'avant (en spécifiant period_no sur 4).

TempTable:

LOAD RecNo() as InvID, * Inline [

InvDate

28/03/2012

10/12/2012

5/2/2013

31/3/2013

19/5/2013

15/9/2013

11/12/2013

2/3/2014

14/5/2014

13/6/2014

7/7/2014

4/8/2014

];

 

InvoiceData:

LOAD *,

InMonthsToDate(2, InvDate, '15/02/2013', 4) AS InMths2DPlus4

Resident TempTable;

Drop table TempTable;

La table résultante présente les dates initiales et une colonne contenant la valeur de retour de la fonction InMonths().

La période de recherche s'étend du 01/09/2013 au 15/10/2013, car la valeur de base_date est décalée de huit mois vers l'avant à partir de la valeur indiquée dans la fonction (soit le 15/02/2013).

Résultats de l'exemple 5
InvDate InMths2DPlus4
28/03/2012 0 (False)
10/12/2012 0 (False)
5/2/2013 0 (False)
31/3/2013 0 (False)
19/5/2013 0 (False)
15/9/2013 -1 (True)
11/12/2013 0 (False)
2/3/2014 0 (False)
14/5/2014 0 (False)
13/6/2014 0 (False)
7/7/2014 0 (False)
4/8/2014 0 (False)

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 !

Rejoignez le Programme de modernisation analytique

Remove banner from view

Modernisez votre système sans compromettre vos précieuses applications QlikView grâce au Programme de modernisation analytique. Cliquez ici pour plus d'informations ou contactez : ampquestions@qlik.com