inweektodate - Skript- und Diagrammfunktion
Diese Funktion liefert True, wenn timestamp innerhalb des Teils der Woche liegt, die base_date enthält, und zwar einschließlich der letzten Millisekunde von base_date.
Syntax:
InWeekToDate (timestamp, base_date, period_no [, first_week_day])
Rückgabedatentyp: Boolesch
Argumente:
Argument | Beschreibung |
---|---|
timestamp | Das Datum, das mit base_date verglichen werden soll. |
base_date | Datum, das für die Interpretation der Woche verwendet wird. |
period_no | Die Woche kann um period_no verschoben werden. period_no ist eine ganze Zahl, wobei der Wert 0 die Woche angibt, die base_date enthält. Negative Werte in period_no stehen für vorangehende Wochen, positive Werte für nachfolgende Wochen. |
first_week_day |
Standardmäßig ist Montag der erste Wochentag, mit dem Beginn um Mitternacht zwischen Sonntag und Montag. Wenn der Wochenbeginn auf einen anderen Tag fallen soll, geben Sie dies unter first_week_day an. Die Angabe kann als Ganzzahl und/oder Bruchteil von Tagen erfolgen. |
Beispiel 1:
inweektodate ('12/01/2006', '12/01/2006', 0)
Liefert True
Beispiel 2:
inweektodate ('12/01/2006', '11/01/2006', 0)
Liefert False
Beispiel 3:
inweektodate ('12/01/2006', '18/01/2006', -1)
Liefert False
Weil period_no als -1 festgelegt wurde, wird als Gültigkeitsdatum, mit dem timestamp verglichen wird, 11/01/2006 verwendet.
Beispiel 4:
inweektodate ( '11/01/2006', '12/01/2006', 0, 3 )
Liefert False
Da first_week_day als 3 (Donnerstag) festgelegt wurde, sodass 12/01/2006 der erste Tag der Folgewoche nach der Woche ist, die 12/01/2006 enthält.
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 ein Rechnungsdatum in die vierte Woche nach der Woche in base_date fällt, indem period_no als 4 angegeben wird, aber vor dem Wert von base_date liegt.
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 *,
InWeekToDate(InvDate, '11/01/2013', 4) AS InWeek2DPlus4
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 inweek().
InvDate | InWeek2DPlus4 |
---|---|
28/03/2012 | 0 (False) |
10/12/2012 | 0 (False) |
5/2/2013 | -1 (True) |
31/3/2013 | 0 (False) |
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) |