Gå till huvudinnehåll

inmonthstodate - skript- och diagramfunktion

Med den här funktionen får vi reda på om en tidsmarkör finns inom delen av månaden, tvåmånadersperioden, kvartalet, fyramånadersperioden eller halvåret fram till och inklusive den sista millisekunden av base_date. Det går även att se om tidsmarkören finns inom en föregående eller senare tidsperiod.

Syntax:  

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

Typ av returdata: Boolesk

Argument:  

InMonthsToDate-argument
Argument Beskrivning
n_months

Antalet månader som definierar perioden. Ett heltal eller ett uttryck som resulterar i ett heltal som måste vara ett av följande: 1 (motsvaras av inmonth() -funktionen), 2 (tvåmånadersperiod), 3 (motsvaras av inquarter()-funktionen), 4 (fyramånadersperiod) eller 6 (halvår).

timestamp Det datum du vill jämföra mot base_date.
base_date Datum som används för att utvärdera perioden.
period_no

Periodens startpunkt kan flyttas med period_no, ett heltal, eller ett uttryck som resulterar i ett heltal, där värdet 0 anger den period som innehåller base_date. Negativa värden i period_no anger föregående perioder och positiva värden anger efterföljande perioder.

first_month_of_year

Om du vill arbeta med (budget)år som inte börjar i januari kan du ange ett värde mellan 2 och 12 i first_month_of_year.

Exempel och resultat:  

I de här exemplen används datumformatet DD/MM/YYYY. Datumformatet anges i SET DateFormat-satsen längst upp i laddningsskriptet. Ändra formatet i exemplen så att det passar dina krav.

Exempel 1:  

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

Returnerar True. Eftersom värdet för timestamp, 25/01/2013, befinner sig inom fyramånadersperioden 01/01/2013 till slutet på 25/04/2013, där värdet för base_date, 25/04/2013 finns.

Exempel 2:  

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

Returnerar False. Eftersom 26/04/2013 är utanför samma period som i förra exemplet.

Exempel 3:  

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

Returnerar True. Eftersom värdet för period_no, -1, flyttar sökperioden bakåt en period på fyra månader (värdet för n-months), vilket gör sökperioden till 01/09/2005 till 01/02/2006.

Exempel 4:  

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

Returnerar True. Eftersom värdet för first_month_of_year är angett som 3, vilket gör sökperioden till 01/03/2006 till 01/06/2006 istället för 01/05/2006 till 01/06/2006.

Exempel 5:  

Lägg till exempelskriptet i dokumentet och kör det. Lägg sedan till åtminstone de fält som listas i resultatkolumnen på ett ark i dokumentet för att se resultatet.

I det här exemplet undersöker vi om faktureringsdatumet i tabellen infaller under delen av tvåmånadersperioden som sträcker sig till och innefattar base_date framflyttad fyra tvåmånadersperioder (genom att ange period_no som 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;

Den resulterande tabellen innehåller de ursprungliga datumen och en kolumn med returvärdet för InMonths()-funktionen.

Sökperioden är 01/09/2013 till 15/10/2013, eftersom värdet för base_date flyttas framåt åtta månader från värdet i funktionen (15/02/2013).

Resultat för exempel 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)

Var den här sidan till hjälp för dig?

Om du hittar några fel på denna sida eller i innehållet – ett stavfel, ett steg som saknas eller ett tekniskt fel – berätta för oss så att vi kan blir bättre!

Gå med i programmet Analytics Modernization

Remove banner from view

Modernisera utan att kompromissa med dina värdefulla QlikView-appar med programmet för analysmodernisering. Klicka här för mer information eller ta kontakt: ampquestions@qlik.com