Med den här funktionen får vi reda på om en tidsmarkör finns inom samma månad, tvåmånadersperiod, kvartal, tredjedels år eller halvår som ett basdatum. Det går även att se om tidsmarkören finns inom en föregående eller senare tidsperiod.
Antalet månader som definierar perioden. 1 (motsvaras av inmonth()-funktionen), 2 (tvåmånadersperiod), 3 (motsvaras av inquarter()-funktionen), 4 (tredjedels år), 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.
I de här exemplen används datumformatet DD/MM/YYYY. Datumformatet anges i SET DateFormat-satsen längst upp i dataladdningsskriptet. Ändra formatet i exemplen så att det passar dina krav.
Skriptexempel
Exempel
Resultat
inmonths(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 30/04/2013, där värdet för base_date, 25/04/2013 finns.
inmonths(4, '25/05/2013', '25/04/2013', 0)
Returnerar False. Eftersom 25/05/2013 är utanför samma period som i förra exemplet.
inmonths(4, '25/11/2012', '01/02/2013', -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/2012 till 31/12/2012.
inmonths( 4, '25/05/2006', '01/03/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 30/07/2006 istället för 01/01/2006 till 30/04/2006.
Exempel:
Lägg till exempelskriptet i appen och kör det. När du vill se resultatet lägger du till de fält som anges i resultatkolumnen i ett ark i din app.
I det här exemplet undersöker vi om faktureringsdatumet i tabellen infaller under tvåmånadersperioden som innefattar base_date framflyttad en tvåmånadersperiod (genom att ange period_no som 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;
Den resulterande tabellen innehåller de ursprungliga datumen och en kolumn med returvärdet för InMonths()-funktionen.
Sökperioden är 01/03/2013 till 30/04/2013, eftersom värdet för base_date flyttas framåt två månader från värdet i funktionen (11/02/2013).
Resultattabell
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)
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!