monthsend - script- en diagramfunctie
Deze functie retourneert een waarde die overeenkomt met een tijdstempel van de laatste milliseconde van de periode van een maand, twee maanden, kwartaal, tertiaal of half jaar die een basisdatum bevat. Het is tevens mogelijk om de tijdstempel voor een voorafgaande of volgende tijdsperiode te bepalen.
Syntaxis:
MonthsEnd(n_months, date[, period_no [, first_month_of_year]])
Retourgegevenstypen: dubbele waarde
Argumenten:
Deze voorbeelden gebruiken de datumopmaak DD/MM/YYYY. De datumopmaak wordt opgegeven in de opdracht SET DateFormat boven aan uw script voor het laden van gegevens. Wijzig de opmaak in de voorbeelden zodat deze in uw behoeften voorziet.
Voorbeeld | Resultaat |
---|---|
monthsend(4, '19/07/2013') | Retourneert 31/08/2013. |
monthsend(4, '19/10/2013', -1) | Retourneert 31/08/2013. |
monthsend(4, '19/10/2013', 0, 2) | Retourneert 31/01/2014. Omdat het begin van het jaar maand 2 wordt. |
Voorbeeld:
Voeg het voorbeeldscript toe aan uw app en voer het uit. Voeg vervolgens de velden die in de resultatenkolom staan toe aan een werkblad in uw app om het resultaat te bekijken.
Dit voorbeeld retourneert het einde van de laatste dag van een periode van twee maanden voor elke factuurdatum, één periode van twee maanden vooruitgeschoven.
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 *,
MonthsEnd(2, InvDate, 1) AS BiMthsEnd
Resident TempTable;
Drop table TempTable;
De resulterende tabel bevat de oorspronkelijke datums en een kolom met de retourwaarde van de functie MonthsEnd().
InvDate | BiMthsEnd |
---|---|
28/03/2012 | 30/06/2012 |
10/12/2012 | 28/02/2013 |
5/2/2013 | 30/04/2013 |
31/3/2013 | 30/04/2013 |
19/5/2013 | 31/08/2013 |
15/9/2013 | 31/12/2013 |
11/12/2013 | 28/02/2014 |
2/3/2014 | 30/06/2014 |
14/5/2014 | 31/08/2014 |
13/6/2014 | 31/08/2014 |
7/7/2014 | 31/10/2014 |
4/8/2014 | 31/10/2014 |