Diese Funktion gibt einen Wert zurück, der dem Zeitstempel der letzten Millisekunde des letzten Tages der Kalenderwoche entspricht, in der date liegt. Das Ergebnis wird entsprechend dem im Skript definierten DateFormat formatiert.
Die Funktion weekend() bestimmt, in welche Woche das Datum fällt. Sie gibt dann einen Zeitstempel im Datumsformat für die letzte Millisekunde dieser Woche zurück. Der erste Tag der Woche wird durch die UmgebungsvariableFirstWeekDay bestimmt. Dies kann jedoch durch das Argument first_week_day in der Funktion weekend() überschrieben werden.
Argumente
Argument
Beschreibung
timestamp
Datum oder Zeitstempel für die Evaluierung.
period_no
shift ist eine ganze Zahl, wobei 0 für die Woche steht, die date enthält. Negative Werte von "shift" stehen für vorangehende Wochen, positive Werte für nachfolgende Wochen.
first_week_day
Legt den Tag fest, an dem die Woche beginnt. Ist nichts definiert, wird der Wert der Variable FirstWeekDay verwendet.
Die möglichen Werte für first_week_day sind 0 für Montag, 1 für Dienstag, 2 für Mittwoch, 3 für Donnerstag, 4 für Freitag, 5 für Samstag und 6 für Sonntag.
Weitere Informationen über die Systemvariable finden Sie unter FirstWeekDay.
Verwendung
Die Funktion weekend() wird in der Regel als Teil einer Formel verwendet, wenn in der Berechnung die verbleibenden Tage der Woche für das angegebene Datum verwendet werden sollen. Beispiel: Ein Benutzer möchte die gesamten, während der Woche noch nicht fällig gewordenen Zinsen berechnen.
Die folgenden Beispiele nehmen an:
SET FirstWeekDay=0;
Beispiel
Ergebnis
weekend('01/10/2013')
Gibt 01/12/2013 23:59:59 zurück.
weekend('01/10/2013', -1)
Gibt 01/05/2013 23:59:59. zurück.
weekend('01/10/2013', 0, 1)
Gibt 01/14/2013 23:59:59 zurück.
Regionaleinstellungen
Sofern nicht anders angegeben, verwenden die Beispiele in diesem Thema das folgende Datumsformat: MM/TT/JJJJ. Das Datumsformat wird in der Anweisung SET DateFormat in Ihrem Datenladeskript angegeben. Das Standarddatumsformat in Ihrem System kann aufgrund Ihrer regionalen Einstellungen und anderer Faktoren abweichen. Sie können die Formate in den Beispielen unten Ihren Anforderungen entsprechend ändern. Sie können auch die Formate in Ihrem Ladeskript entsprechend den Beispielen ändern. Weitere Informationen finden Sie unter Ändern von regionalen Einstellungen für Apps und Skripte.
Regionale Standardeinstellungen in Apps basieren auf dem Benutzerprofil. Diese Einstellungen im regionalen Format hängen nicht mit der Sprache zusammen, die in der Benutzeroberfläche von Qlik Cloud angezeigt wird. Qlik Cloud wird in der gleichen Sprache wie der von Ihnen verwendete Browser angezeigt.
Wenn Sie ISO-Einstellungen für Wochen und Wochennummern verwenden möchten, müssen Sie Folgendes in das Skript einschließen:
Set DateFormat ='YYYY-MM-DD';
Set FirstWeekDay =0; // Monday as first week day
Set BrokenWeeks =0; //(use unbroken weeks)
Set ReferenceDay =4; // Jan 4th is always in week 1
Wenn Sie US-Einstellungen verwenden möchten, müssen Sie Folgendes in das Skript einschließen:
Set DateFormat ='M/D/YYYY';
Set FirstWeekDay =6; // Sunday as first week day
Set BrokenWeeks =1; //(use broken weeks)
Set ReferenceDay =1; // Jan 1st is always in week 1
Die obigen Beispiele führen zu folgenden Ergebnissen für die Funktion weekend():
Beispiel der Funktion „Weekend“
Datum
ISO-Wochenende
US-Wochenende
Sat 2020 Dec 26
2020-12-27
12/26/2020
Sun 2020 Dec 27
2020-12-27
1/2/2021
Mon 2020 Dec 28
2021-01-03
1/2/2021
Tue 2020 Dec 29
2021-01-03
1/2/2021
Wed 2020 Dec 30
2021-01-03
1/2/2021
Thu 2020 Dec 31
2021-01-03
1/2/2021
Fri 2021 Jan 1
2021-01-03
1/2/2021
Sat 2021 Jan 2
2021-01-03
1/2/2021
Sun 2021 Jan 3
2021-01-03
1/9/2021
Mon 2021 Jan 4
2021-01-10
1/9/2021
Tue 2021 Jan 5
2021-01-10
1/9/2021
InformationshinweisIn der ISO-Spalte endet die Woche an Sonntagen, in der US-Spalte an Samstagen.
Beispiel 1 – einfaches Beispiel
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Ein Datensatz enthält eine Reihe von Transaktionen für 2022 und wird in eine Tabelle namens Transactions geladen.
Das Datumsfeld wird im Format der Systemvariablen DateFormat (MM/TT/JJJJ) bereitgestellt.
Erstellung eines Felds end_of_week, das einen Zeitstempel für das Ende der Woche zurückgibt, in der die Transaktionen stattfanden
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
date
end_of_week
end_of_week_timestamp
Ergebnistabelle
date
end_of_week
end_of_week_timestamp
1/7/2022
01/08/2022
1/8/2022 11:59:59 PM
1/19/2022
01/22/2022
1/22/2022 11:59:59 PM
2/5/2022
02/05/2022
2/5/2022 11:59:59 PM
2/28/2022
03/05/2022
3/5/2022 11:59:59 PM
3/16/2022
03/19/2022
3/19/2022 11:59:59 PM
4/1/2022
04/02/2022
4/2/2022 11:59:59 PM
5/7/2022
05/07/2022
5/7/2022 11:59:59 PM
5/16/2022
05/21/2022
5/21/2022 11:59:59 PM
6/15/2022
06/18/2022
6/18/2022 11:59:59 PM
6/26/2022
07/02/2022
7/2/2022 11:59:59 PM
7/9/2022
07/09/2022
7/9/2022 11:59:59 PM
7/22/2022
07/23/2022
7/23/2022 11:59:59 PM
7/23/2022
07/23/2022
7/23/2022 11:59:59 PM
7/27/2022
07/30/2022
7/30/2022 11:59:59 PM
8/2/2022
08/06/2022
8/6/2022 11:59:59 PM
8/8/2022
08/13/2022
8/13/2022 11:59:59 PM
8/19/2022
08/20/2022
8/20/2022 11:59:59 PM
9/26/2022
10/01/2022
10/1/2022 11:59:59 PM
10/14/2022
10/15/2022
10/15/2022 11:59:59 PM
10/29/2022
10/29/2022
10/29/2022 11:59:59 PM
Das Feld end_of_week wird im vorangehenden load-Befehl erstellt, indem die Funktion weekend() verwendet und das Datumsfeld als Argument der Funktion übergeben wird.
Die Funktion weekend() identifiziert, in welche Woche der Datumswert fällt, und gibt einen Zeitstempel für die letzte Millisekunde dieser Woche zurück.
Transaktion 8191 fand am 5. Februar statt. Die Systemvariable FirstWeekDay legt den ersten Tag der Woche als Sonntag fest. Die Funktion weekend() ermittelt, dass der erste Samstag nach dem 5. Februar – und somit nach dem Ende der Woche – der 5. Februar war. Daher gibt der Wert end_of_week für diese Transaktion die letzte Millisekunde dieses Tages zurück, also den 5. Februar um 11:59:59 PM.
Beispiel 2 – period_no
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Derselbe Datensatz und dasselbe Szenario wie im ersten Beispiel.
Es wird ein Feld previous_week_end erstellt, das den Zeitstempel für den Start der Woche vor der Woche zurückgibt, in der die Transaktion stattfand.
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
date
previous_week_end
previous_week_end_timestamp
Ergebnistabelle
date
end_of_week
end_of_week_timestamp
1/7/2022
01/01/2022
1/1/2022 11:59:59 PM
1/19/2022
01/15/2022
1/15/2022 11:59:59 PM
2/5/2022
01/29/2022
1/29/2022 11:59:59 PM
2/28/2022
02/26/2022
2/26/2022 11:59:59 PM
3/16/2022
03/12/2022
3/12/2022 11:59:59 PM
4/1/2022
03/26/2022
3/26/2022 11:59:59 PM
5/7/2022
04/30/2022
4/30/2022 11:59:59 PM
5/16/2022
05/14/2022
5/14/2022 11:59:59 PM
6/15/2022
06/11/2022
6/11/2022 11:59:59 PM
6/26/2022
06/25/2022
6/25/2022 11:59:59 PM
7/9/2022
07/02/2022
7/2/2022 11:59:59 PM
7/22/2022
07/16/2022
7/16/2022 11:59:59 PM
7/23/2022
07/16/2022
7/16/2022 11:59:59 PM
7/27/2022
07/23/2022
7/23/2022 11:59:59 PM
8/2/2022
07/30/2022
7/30/2022 11:59:59 PM
8/8/2022
08/06/2022
8/6/2022 11:59:59 PM
8/19/2022
08/13/2022
8/13/2022 11:59:59 PM
9/26/2022
09/24/2022
9/24/2022 11:59:59 PM
10/14/2022
10/08/2022
10/8/2022 11:59:59 PM
10/29/2022
10/22/2022
10/22/2022 11:59:59 PM
Da in diesem Fall eine period_no von -1 als Versatzargument in der Funktion weekend() verwendet wurde, identifiziert die Funktion zuerst die Woche, in der die Transaktionen stattfinden. Dann geht sie eine Woche zurück und identifiziert die letzte Millisekunde dieser Woche.
Transaktion 8196 fand am 15. Juni statt. Die Funktion weekend() identifiziert, dass die Woche am 12. Juni beginnt. Daher endet die vorherige Woche am 11. Juni um 11:59:59 PM; dies ist der Wert, der für das Feld previous_week_end zurückgegeben wird.
Beispiel 3 – first_week_day
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript verwendet den gleichen Datensatz und das gleiche Szenario wie das erste Beispiel. In diesem Beispiel muss jedoch Dienstag als der erste Tag der Arbeitswoche festgelegt werden.
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
date
end_of_week
end_of_week_timestamp
Ergebnistabelle
date
end_of_week
end_of_week_timestamp
1/7/2022
01/10/2022
1/10/2022 11:59:59 PM
1/19/2022
01/24/2022
1/24/2022 11:59:59 PM
2/5/2022
02/07/2022
2/7/2022 11:59:59 PM
2/28/2022
02/28/2022
2/28/2022 11:59:59 PM
3/16/2022
03/21/2022
3/21/2022 11:59:59 PM
4/1/2022
04/04/2022
4/4/2022 11:59:59 PM
5/7/2022
05/09/2022
5/9/2022 11:59:59 PM
5/16/2022
05/16/2022
5/16/2022 11:59:59 PM
6/15/2022
06/20/2022
6/20/2022 11:59:59 PM
6/26/2022
06/27/2022
6/27/2022 11:59:59 PM
7/9/2022
07/11/2022
7/11/2022 11:59:59 PM
7/22/2022
07/25/2022
7/25/2022 11:59:59 PM
7/23/2022
07/25/2022
7/25/2022 11:59:59 PM
7/27/2022
08/01/2022
8/1/2022 11:59:59 PM
8/2/2022
08/08/2022
8/8/2022 11:59:59 PM
8/8/2022
08/08/2022
8/8/2022 11:59:59 PM
8/19/2022
08/22/2022
8/22/2022 11:59:59 PM
9/26/2022
09/26/2022
9/26/2022 11:59:59 PM
10/14/2022
10/17/2022
10/17/2022 11:59:59 PM
10/29/2022
10/31/2022
10/31/2022 11:59:59 PM
Da in diesem Fall das Argument first_week_date von 1 in der Funktion weekend() verwendet wird, legt sie Dienstag als ersten Tag der Woche fest.
Transaktion 8191 fand am 5. Februar statt. Die Funktion weekend() identifiziert, dass der erste Montag nach diesem Datum – und somit das Ende der Woche und der zurückgegebene Wert – der 6. Februar um 11:59:59 PM war.
Beispiel 4 – Diagrammobjektbeispiel
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript verwendet den gleichen Datensatz und das gleiche Szenario wie das erste Beispiel. In diesem Beispiel wird jedoch der unveränderte Datensatz in die Anwendung geladen. Die Berechnung, die einen Zeitstempel für das Ende der Woche zurückgibt, in dem die Transaktionen stattfanden, wird als Kennzahl in einem Diagrammobjekt der Anwendung erstellt.
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie dieses Feld als Dimension hinzu: date.
Um den Start der Woche zu berechnen, in der eine Transaktion stattfindet, erstellen Sie die folgenden Kennzahlen:
=weekend(date)
=timestamp(weekend(date))
Ergebnistabelle
date
=weekend(date)
=timestamp(weekend(date))
1/7/2022
01/08/2022
1/8/2022 11:59:59 PM
1/19/2022
01/22/2022
1/22/2022 11:59:59 PM
2/5/2022
02/05/2022
2/5/2022 11:59:59 PM
2/28/2022
03/05/2022
3/5/2022 11:59:59 PM
3/16/2022
03/19/2022
3/19/2022 11:59:59 PM
4/1/2022
04/02/2022
4/2/2022 11:59:59 PM
5/7/2022
05/07/2022
5/7/2022 11:59:59 PM
5/16/2022
05/21/2022
5/21/2022 11:59:59 PM
6/15/2022
06/18/2022
6/18/2022 11:59:59 PM
6/26/2022
07/02/2022
7/2/2022 11:59:59 PM
7/9/2022
07/09/2022
7/9/2022 11:59:59 PM
7/22/2022
07/23/2022
7/23/2022 11:59:59 PM
7/23/2022
07/23/2022
7/23/2022 11:59:59 PM
7/27/2022
07/30/2022
7/30/2022 11:59:59 PM
8/2/2022
08/06/2022
8/6/2022 11:59:59 PM
8/8/2022
08/13/2022
8/13/2022 11:59:59 PM
8/19/2022
08/20/2022
8/20/2022 11:59:59 PM
9/26/2022
10/01/2022
10/1/2022 11:59:59 PM
10/14/2022
10/15/2022
10/15/2022 11:59:59 PM
10/29/2022
10/29/2022
10/29/2022 11:59:59 PM
Die Kennzahl end_of_week wird im Diagrammobjekt erstellt, indem die Funktion weekend() verwendet und das Datumsfeld als Argument der Funktion übergeben wird. Die Funktion weekend() identifiziert, in welche Woche der Datumswert fällt, und gibt einen Zeitstempel für die letzte Millisekunde dieser Woche zurück.
Transaktion 8191 fand am 5. Februar statt. Die Systemvariable FirstWeekDay legt den ersten Tag der Woche als Sonntag fest. Die Funktion weekend() identifiziert den ersten Samstag nach dem 5. Februar – und somit nach dem Ende der Woche – als den 5. Februar. Daher gibt der Wert end_of_week für diese Transaktion die letzte Millisekunde dieses Tages zurück, also den 5. Februar um 11:59:59 PM.
Beispiel 5 – Szenario
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Datensatz, der in eine Tabelle namens Employee_Expenses geladen wird
Daten bestehend aus Mitarbeiter-IDs, Mitarbeiternamen und den durchschnittlichen täglichen Spesenanträge jedes Mitarbeiters
Der Endbenutzer möchte ein Diagrammobjekt, das nach Mitarbeiter-ID und Mitarbeiternamen die geschätzten Spesenanträge anzeigt, die für die restliche Woche noch anfallen.
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
employee_id
employee_name
Erstellen Sie dann eine Kennzahl, um die kumulierten Zinsen zu berechnen:
=(weekend(today(1))-today(1))*avg_daily_claim
Legen Sie das Zahlenformat der Kennzahl auf Währung fest.
Ergebnistabelle
employee_id
employee_name
=(weekend(today(1))-today(1))*avg_daily_claim
182
Mark
$90.00
183
Deryck
$75.00
184
Dexter
$75.00
185
Sydney
$162.00
186
Agatha
$108.00
Da das aktuelle Datum als einziges Argument verwendet wird, gibt die Funktion weekend() das Enddatum der aktuellen Woche zurück. Dann zieht die Formel das aktuelle Datum vom Enddatum der Woche ab und gibt die Anzahl der in dieser Woche verbleibenden Tage zurück.
Dieser Wert wird dann mit den durchschnittlichen täglichen Spesenanträgen der einzelnen Mitarbeitern multipliziert, um den geschätzten Spesenbetrag pro Mitarbeiter für den verbleibenden Teil der Woche zu berechnen.
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!