Zu Hauptinhalt springen

inmonthstodate - Skript- und Diagrammfunktion

Diese Funktion ermittelt, ob ein Zeitstempel im Teil eines Zeitraums von einem Monat, zwei Monaten, einem Quartal, vier Monaten oder einem Halbjahr liegt, bis einschließlich der letzten Millisekunde von base_date. Es lässt sich auch bestimmen, ob ein Zeitstempel in den vorhergehenden oder nachfolgenden Zeitraum fällt.

Syntax:  

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

Rückgabedatentyp: Boolesch

Argumente:  

InMonthsToDate-Argumente
Argument Beschreibung
n_months

Die Anzahl der Monate, die den Zeitraum definiert. Eine ganze Zahl oder eine Formel, die eine ganze Zahl mit einem der folgenden Werte ergibt: 1 (entspricht der Funktion inmonth()), 2 (zwei Monate), 3 (entspricht der Funktion inquarter()), 4 (vier Monate) oder 6 (Halbjahr).

timestamp Das Datum, das mit base_date verglichen werden soll.
base_date Datum, das für die Interpretation des Zeitraums verwendet wird.
period_no

Mit period_no, einer ganze Zahl oder einer Formel, die eine ganze Zahl ergibt, kann ein anderer Beginn für den Zeitraum festgelegt werden, wobei 0 für den Zeitraum steht, der base_date enthält. Negative Werte von period_no stehen für vorangehende, positive Werte für nachfolgende Zeiträume.

first_month_of_year

Wenn Sie mit abweichenden Geschäftsjahren arbeiten möchten, definieren Sie mit einer Zahl zwischen 2 und 12 für first_month_of_year einen anderen Startmonat.

Beispiele und Ergebnisse:  

In diesen Beispielen wird das Datumsformat DD/MM/YYYY verwendet. Das Datumsformat wird im Befehl SET DateFormat oben in Ihrem Ladeskript angegeben. Ändern Sie das Format in den Beispielen nach Bedarf.

Beispiel 1:  

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

Liefert True. Weil der Wert von timestamp, 25/01/2013, in einen Viermonatszeitraum von 01/01/2013 bis Ende 25/04/2013 fällt, in dem der Wert von base_date, 25/04/2013 liegt.

Beispiel 2:  

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

Liefert False. Weil 26/04/2013 sich außerhalb des im vorhergehenden Beispiel angegebenen Zeitraums befindet.

Beispiel 3:  

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

Liefert True. Weil der Wert von period_no, -1 den Suchzeitraum um einen Zeitraum von vier Monaten (den Wert von n-months) nach hinten verschiebt. Dadurch ergibt sich der Suchzeitraum 01/09/2005 bis 01/02/2006.

Beispiel 4:  

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

Liefert True. Weil der Wert von first_month_of_year auf 3 festgelegt ist, weshalb der Suchzeitraum 01/03/2006 bis 01/06/2006 statt 01/05/2006 bis 01/06/2006 ist.

Beispiel 5:  

Fügen Sie Ihrem Dokument das Beispielskript hinzu und führen Sie sie aus. Fügen Sie einem Arbeitsblatt in Ihrem Dokument dann mindestens diejenigen Felder hinzu, die in der Ergebnisspalte aufgeführt sind, um das Ergebnis anzuzeigen.

In diesem Beispiel wird überprüft, ob das Rechnungsdatum in der Tabelle in den Teil des Zweimonatszeitraums fällt, der bis zu und einschließlich base_date um einen Viermonatszeitraum nach vorne verschoben enthält (durch die Angabe von period_no als 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;

Die sich daraus ergebende Tabelle enthält die ursprünglichen Daten sowie eine Spalte mit dem Rückgabewert der Funktion InMonths().

Der Suchzeitraum ist 01/09/2013 bis 15/10/2013, weil der Wert von base_date vom Wert in der Funktion um acht Monate nach vorne verschoben wurde (15/02/2013).

Beispiel 5 – Ergebnisse
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)

Hat diese Seite Ihnen geholfen?

Wenn Sie Probleme mit dieser Seite oder ihren Inhalten feststellen – einen Tippfehler, einen fehlenden Schritt oder einen technischen Fehler –, teilen Sie uns bitte mit, wie wir uns verbessern können!

Nehmen Sie am Analyse-Modernisierungsprogramm teil

Remove banner from view

Modernisieren Sie mit dem Analyse-Modernisierungsprogramm, ohne Ihre wertvollen QlikView-Apps zu gefährden. Klicken Sie hier für weitere Informationen oder kontaktieren Sie uns: ampquestions@qlik.com