inmonths - fonction de script et fonction de graphique
Cette fonction permet de déterminer si un horodatage tombe dans la même période (mois, période de deux mois, trimestre, période de quatre mois ou semestre) qu'une date de référence. Il est également possible de déterminer si l'horodatage se situe dans une période passée ou future.
Nombre de mois définissant la période. Entier ou expression aboutissant à un entier qui doit correspondre à l'une de ces valeurs : 1 (qui équivaut à la fonction inmonth()), 2 (deux mois), 3 (qui équivaut à la fonction inquarter()), 4 (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.
Month
Value
February
2
March
3
April
4
May
5
June
6
July
7
August
8
September
9
October
10
November
11
December
12
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 de données. Modifiez le format utilisé dans les exemples en fonction de vos exigences.
Exemples de script
Exemple
Résultat
inmonths(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 au 30/04/2013, qui comprend la valeur de base_date, soit le 25/04/2013.
inmonths(4, '25/05/2013', '25/04/2013',
0)
Renvoie False. Car le 25/05/2013 se trouve hors de la période indiquée dans l'exemple ci-dessus.
inmonths(4, '25/11/2012', '01/02/2013',
-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/2012 au 31/12/2012.
inmonths( 4, '25/05/2006', '01/03/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 30/07/2006 au lieu du 01/01/2006 au 30/04/2006.
Ajoutez l'exemple de script à votre application et exécutez-le. Pour afficher le résultat, ajoutez les champs répertoriés dans la colonne de résultats à une feuille de votre application.
Cet exemple permet de vérifier si la date de la facture figurant dans la table tombe dans la période de deux mois qui inclut la valeur de base_date avec un décalage d'une période de deux mois vers l'avant (en spécifiant period_no sur 1).
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 *,
InMonths(2, InvDate, '11/02/2013', 1) AS InMthsPlus1
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/03/2013 au 30/04/2013, car la valeur de base_date est décalée de deux mois vers l'avant à partir de la valeur indiquée dans la fonction (soit le 11/02/2013).
Table des résultats
InvDate
InMthsPlus1
28/03/2012
0 (False)
10/12/2012
0 (False)
5/2/2013
0 (False)
31/3/2013
-1 (True)
19/5/2013
0 (False)
15/9/2013
0 (False)
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 !