Diese Funktion liefert den Zeitstempel der ersten Millisekunde des Tages, in dem das Argument time liegt. Das Ergebnis wird entsprechend dem im Skript definierten TimestampFormat formatiert.
Syntax:
DayStart(time[, [period_no[, day_start]])
Rückgabe Datentyp: dual
Argumente
Argument
Beschreibung
time
Der zu berechnende Zeitstempel.
period_no
period_no ist eine ganze Zahl oder eine Formel, die eine ganze Zahl ergibt, wobei 0 für den Tag steht, der time enthält. Negative Werte von period_no stehen für vorangehende, positive Werte für nachfolgende Tage.
day_start
Um anzugeben, dass Tage nicht um Mitternacht beginnen, geben Sie einen Versatz als Bruchteil eines Tages in day_start an. So steht beispielsweise 0,125 für 3:00 Uhr.
Um den Versatz zu erstellen, teilen Sie also die Startuhrzeit durch 24 Stunden. Damit beispielsweise ein Tag um 7:00 Uhr beginnt, verwenden Sie den Bruch 7/24.
Verwendung
Die Funktion daystart() wird in der Regel als Teil einer Formel verwendet, wenn in der Berechnung der Teil des Tages verwendet werden soll, der bereits verstrichen ist. Beispielsweise kann sie verwendet werden, um den Gesamtlohn zu berechnen, der bisher von den Mitarbeitern am Tag verdient wurde.
In diesen Beispielen wird das Zeitstempelformat 'M/D/YYYY h:mm:ss[.fff] TT' verwendet. Das Zeitstempelformat wird in der Anweisung SET TimeStamp oben in Ihrem Datenladeskript angegeben. Ändern Sie das Format in den Beispielen nach Bedarf.
Funktionsbeispiele
Beispiel
Ergebnis
daystart('01/25/2013 4:45:00 PM')
Gibt 1/25/2013 12:00:00 AM zurück.
daystart('1/25/2013 4:45:00 PM', -1)
Gibt 1/24/2013 12:00:00 AM zurück.
daystart('1/25/2013 16:45:00',0,0.5
)
Gibt 1/25/2013 12:00:00 PM 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.
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Ein einfacher Datensatz enthält eine Liste der Datumsangaben, die in eine Tabelle mit dem Namen Calendar geladen werden.
Die StandardsystemvariableTimeStampFormat ((M/D/YYYY h:mm:ss[.fff] TT) wird verwendet.
Mit einem vorangehenden load-Befehl wird unter Verwendung der Funktion daystart() ein zusätzliches Feld mit dem Namen SOD_timestamp erstellt.
Abgesehen vom Datum werden der Funktion keine weiteren Parameter bereitgestellt.
Ladeskript
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';
Calendar:
Load
date,
daystart(date) as SOD_timestamp
;
Load
date
Inline
[
date
03/11/2022 1:47:15 AM
03/12/2022 4:34:58 AM
03/13/2022 5:15:55 AM
03/14/2022 9:25:14 AM
03/15/2022 10:06:54 AM
03/16/2022 10:44:42 AM
03/17/2022 11:33:30 AM
03/18/2022 12:58:14 PM
03/19/2022 4:23:12 PM
03/20/2022 6:42:15 PM
03/21/2022 7:41:16 PM
];
Ergebnisse
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
SOD_timestamp
Ergebnistabelle
date
SOD_timestamp
03/11/2022 1:47:15 AM
3/11/2022 12:00:00 AM
03/12/2022 4:34:58 AM
3/12/2022 12:00:00 AM
03/13/2022 5:15:55 AM
3/13/2022 12:00:00 AM
03/14/2022 9:25:14 AM
3/14/2022 12:00:00 AM
03/15/2022 10:06:54 AM
3/15/2022 12:00:00 AM
03/16/2022 10:44:42 AM
3/16/2022 12:00:00 AM
03/17/2022 11:33:30 AM
3/17/2022 12:00:00 AM
03/18/2022 12:58:14 PM
3/18/2022 12:00:00 AM
03/19/2022 4:23:12 PM
3/19/2022 12:00:00 AM
03/20/2022 6:42:15 PM
3/20/2022 12:00:00 AM
03/21/2022 7:41:16 PM
3/21/2022 12:00:00 AM
Wie in der Tabelle oben zu sehen ist, wird der Tagesende-Zeitstempel für jedes Datum in unserem Datensatz erstellt. Der Zeitstempel hat das Format der Systemvariablen TimestampFormat M/D/YYYY h:mm:ss[.fff] TT.
Beispiel 2 – period_no
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Ein Datensatz, der Strafzettel für Falschparken enthält, wird in eine Tabelle mit dem Namen Fines geladen. Der Datensatz umfasst die folgenden Felder:
id
due_date
number_plate
amount
Eine vorangehende load-Anweisung, die die Funktion daystart() verwendet und alle drei Parameter bereitstellt: time, period_no und day_start. Diese vorangehende load-Anweisung erstellt die folgenden neuen Datumsfelder:
Ein Datumsfeld early_repayment_period, das sieben Tage vor Fälligkeit der Zahlung beginnt.
Ein Datumsfeld late_penalty_period, das 14 Tage nach Fälligkeit der Zahlung beginnt.
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
due_date
early_repayment_period
late_penalty_period
Ergebnistabelle
due_date
early_repayment_period
late_penalty_period
02/11/2022 9:25:14 AM
2/4/2022 12:00:00 AM
2/25/2022 12:00:00 AM
03/25/2022 10:06:54 AM
3/18/2022 12:00:00 AM
4/8/2022 12:00:00 AM
04/14/2022 10:44:42 AM
4/7/2022 12:00:00 AM
4/28/2022 12:00:00 AM
06/28/2022 11:33:30 AM
6/21/2022 12:00:00 AM
7/12/2022 12:00:00 AM
08/15/2022 12:58:14 PM
8/8/2022 12:00:00 AM
8/29/2022 12:00:00 AM
11/16/2022 4:23:12 PM
11/9/2022 12:00:00 AM
11/30/2022 12:00:00 AM
01/17/2023 6:42:15 PM
1/10/2023 12:00:00 AM
1/31/2023 12:00:00 AM
03/22/2023 7:41:16 PM
3/15/2023 12:00:00 AM
4/5/2023 12:00:00 AM
Die Werte der neuen Felder sind im TimestampFormat M/DD/YYYY tt. Da die Funktion daystart() verwendet wurde, sind die Zeitstempelwerte alle die erste Millisekunde des Tages.
Die Werte für den frühen Zahlungszeitraum liegen sieben Tage vor dem Fälligkeitsdatum, da das zweite Argument, das in der Funktion daystart() übergeben wird, negativ ist.
Die Werte für den späten Zahlungszeitraum liegen 14 Tage nach dem Fälligkeitsdatum, da das zweite Argument, das in der Funktion daystart() übergeben wird, positiv ist.
Beispiel 3 – day_start
Ü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 vorigen Beispiel.
Die gleiche vorangehende load-Anweisung wie im vorigen Beispiel.
In diesem Beispiel wird der Beginn und das Ende des Arbeitstags täglich auf 7:00 AM festgelegt.
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
due_date
early_repayment_period
late_penalty_period
Ergebnistabelle
due_date
early_repayment_period
late_penalty_period
02/11/2022
2/3/2022 7:00:00 AM
2/24/2022 7:00:00 AM
03/25/2022
3/17/2022 7:00:00 AM
4/7/2022 7:00:00 AM
04/14/2022
4/6/2022 7:00:00 AM
4/27/2022 7:00:00 AM
06/28/2022
6/20/2022 7:00:00 AM
7/11/2022 7:00:00 AM
08/15/2022
8/7/2022 7:00:00 AM
8/28/2022 7:00:00 AM
11/16/2022
11/8/2022 7:00:00 AM
11/29/2022 7:00:00 AM
01/17/2023
1/9/2023 7:00:00 AM
1/30/2023 7:00:00 AM
03/22/2023
3/14/2023 7:00:00 AM
4/4/2023 7:00:00 AM
Die Datumswerte weisen jetzt einen Zeitstempel von 7:00 AM auf, weil der Wert des Arguments day_start, das in die Funktion daystart() übergeben wurde, 7/24 war. Damit wird der Tagesbeginn auf 7:00 AM festgelegt.
Da das Feld due_date keinen Zeitstempel hat, wird es als 12:00 AM behandelt, gehört also noch zum vorigen Tag, da der Tag um 7:00 AM beginnt und endet. Daher beginnt der frühe Zahlungszeitraum für eine Geldstrafe, die am 11. Februar fällig ist, am 3. Februar um 7:00 Uhr.
Beispiel 4 – Diagrammobjektbeispiel
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
In diesem Beispiel wird derselbe Datensatz und dasselbe Szenario wie im vorigen Beispiel verwendet.
Es wird aber nur die ursprüngliche Tabelle Fines in die Anwendung geladen, zusammen mit den beiden zusätzlichen Fälligkeitsdatumswerten, die in einem Diagrammobjekt berechnet werden.
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie dieses Feld als Dimension hinzu: due_date.
Um das Feld early_repayment_period zu erstellen, erstellen Sie die folgende Kennzahl:
=daystart(due_date,-7,7/24)
Um das Feld late_penalty_period zu erstellen, erstellen Sie die folgende Kennzahl:
=daystart(due_date,14,7/24)
Ergebnistabelle
due_date
=daystart(due_date,-7,7/24)
=daystart(due_date,14,7/24)
02/11/2022 9:25:14 AM
2/4/2022 7:00:00 AM
2/25/2022 7:00:00 AM
03/25/2022 10:06:54 AM
3/18/2022 7:00:00 AM
4/8/2022 7:00:00 AM
04/14/2022 10:44:42 AM
4/7/2022 7:00:00 AM
4/28/2022 7:00:00 AM
06/28/2022 11:33:30 AM
6/21/2022 7:00:00 AM
7/12/2022 7:00:00 AM
08/15/2022 12:58:14 PM
8/8/2022 7:00:00 AM
8/29/2022 7:00:00 AM
11/16/2022 4:23:12 PM
11/9/2022 7:00:00 AM
11/30/2022 7:00:00 AM
01/17/2023 6:42:15 PM
1/10/2023 7:00:00 AM
1/31/2023 7:00:00 AM
03/22/2023 7:41:16 PM
3/15/2023 7:00:00 AM
4/5/2023 7:00:00 AM
Die Werte der neuen Felder sind im TimestampFormat M/D/YYYY h:mm:ss[.fff] TT. Da die Funktion daystart() verwendet wurde, entsprechen die Zeitstempelwerte der ersten Millisekunde des Tages.
Die Werte für den frühen Zahlungszeitraum liegen sieben Tage vor dem Fälligkeitsdatum, da das zweite Argument, das in der Funktion daystart() übergeben wurde, negativ war.
Die Werte für den späten Zahlungszeitraum liegen 14 Tage nach dem Fälligkeitsdatum, da das zweite Argument, das in der Funktion daystart() übergeben wurde, positiv war.
Die Datumswerte weisen einen Zeitstempel von 7:00 AM auf, weil der Wert des dritten Arguments, das an die Funktion daystart() (day_start) übergeben wurde, 7/24 war.
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!