monthsend - Skript- und Diagrammfunktion
Diese Funktion liefert den Zeitstempel der letzten Millisekunde des Monats, von zwei Monaten, einem Quartal, Tertial oder Halbjahr, in dem ein Basisdatum liegt. Es lässt sich auch der Zeitstempel für einen vorhergehenden oder nachfolgenden Zeitraum bestimmen.
Syntax:
MonthsEnd(n_months, date[, period_no [, first_month_of_year]])
Rückgabe Datentyp: dual
Argumente:
In diesen Beispielen wird das Datumsformat DD/MM/YYYY verwendet. Das Datumsformat wird im Befehl SET DateFormat oben in Ihrem Datenladeskript angegeben. Ändern Sie das Format in den Beispielen nach Bedarf.
Beispiel | Ergebnis |
---|---|
monthsend(4, '19/07/2013') | Liefert 31/08/2013. |
monthsend(4, '19/10/2013', -1) | Liefert 31/08/2013. |
monthsend(4, '19/10/2013', 0, 2) | Liefert 31/01/2014. Weil der Start des Jahres auf den Monat 2 verschoben wird. |
Beispiel:
Fügen Sie Ihrer App ein Beispielskript hinzu und führen Sie dieses aus. Fügen Sie einem Arbeitsblatt in Ihrer App dann die Felder hinzu, die in der Ergebnisspalte aufgeführt sind, um das Ergebnis anzuzeigen.
In diesem Beispiel wird das Ende des letzten Tages eines zweimonatigen Zeitraums für jedes Rechnungsdatum ermittelt, das um einen Zeitraum von zwei Monaten nach vorne verschoben wurde.
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;
Die sich daraus ergebende Tabelle enthält die ursprünglichen Daten sowie eine Spalte mit dem Rückgabewert der Funktion 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 |