# dayend Skript- und Diagrammfunktion

Diese Skriptfunktion liefert den Zeitstempel der letzten Millisekunde des Tages, in dem time liegt. Das Ergebnis wird entsprechend dem im Skript definierten TimestampFormat formatiert.

Syntax:

DayEnd(time[, [period\_no[, day\_start]])

Verwendung von dayend

Die Funktion `  dayend() ` wird in der Regel als Teil einer Formel verwendet, wenn in der Berechnung der Teil des Tages verwendet werden soll, der noch nicht eingetreten ist. Damit können beispielsweise die Gesamtausgaben berechnet werden, die im Lauf des Tages noch anfallen werden.

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.<br><br>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. |

## 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 Anwendungen und Skripte](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm).

Regionale Standardeinstellungen in Anwendungen 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 Anwendungsersteller sind, können Sie die Standardregion für die von Ihnen erstellten Anwendungen festlegen. Weitere Informationen finden Sie unter [Festlegen der bevorzugten regionalen Einstellungen für die App-und Skripterstellung in Qlik Cloud Analytics](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting).

Funktionsbeispiele

| Beispiel | Ergebnis |
| --- | --- |
| dayend('01/25/2013 16:45:00') | Liefert 01/25/2013 23:59:59. PM |
| dayend('01/25/2013 16:45:00', -1) | Liefert 01/24/2013 23:59:59. PM |
| dayend('01/25/2013 16:45:00', 0, 0.5) | Liefert 01/26/2013 11:59:59. PM |

## Beispiel 1 – Basisskript

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/dayend.htm)

#### Ladeskript und Ergebnisse

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.

Das Ladeskript umfasst:

* Einen Datensatz, der eine Liste der Datumsangaben enthält, die in eine Tabelle mit dem Namen „Calendar“ geladen werden.

* Die `DateFormat`-Standardsystemvariable `(MM/DD/YYYY)`.

* Einen vorangehenden load-Befehl zum Erstellen eines zusätzlichen Feldes mit dem Namen „`EOD_timestamp`“, unter Verwendung der Funktion `dayend()`.

Ladeskript

```
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT'; 

Calendar: 
    Load 
      date, 
      dayend(date) as EOD_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`

* `EOD_timestamp`

Ergebnistabelle

| Datum | EOD\_timestamp |
| --- | --- |
| 03/11/2022 1:47:15 AM | 3/11/2022 11:59:59 PM |
| 03/12/2022 4:34:58 AM | 3/12/2022 11:59:59 PM |
| 03/13/2022 5:15:55 AM | 3/13/2022 11:59:59 PM |
| 03/14/2022 9:25:14 AM | 3/14/2022 11:59:59 PM |
| 03/15/2022 10:06:54 AM | 3/15/2022 11:59:59 PM |
| 03/16/2022 10:44:42 AM | 3/16/2022 11:59:59 PM |
| 03/17/2022 11:33:30 AM | 3/17/2022 11:59:59 PM |
| 03/18/2022 12:58:14 PM | 3/18/2022 11:59:59 PM |
| 03/19/2022 4:23:12 PM | 3/19/2022 11:59:59 PM |
| 03/20/2022 6:42:15 PM | 3/20/2022 11:59:59 PM |
| 03/21/2022 7:41:16 PM | 3/21/2022 11:59:59 PM |

Wie Sie in der Tabelle oben sehen können, 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

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/dayend.htm)

#### Ladeskript und Ergebnisse

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.

Sie laden einen Datensatz mit Dienstbuchungen in eine Tabelle mit dem Namen „Services“.

Der Datensatz umfasst die folgenden Felder:

* `service_id`

* `service_date`

* `amount`

Sie erstellen zwei neue Felder in der Tabelle:

* `deposit_due_date`: Das Datum, an dem die Anzahlung eingehen sollte. Dies ist das Tagesende drei Tage vor dem `service_date`.

* `final_payment_due_date`: Das Datum, an dem die abschließende Zahlung eingehen sollte. Dies ist das Tagesende sieben Tage nach dem `service_date`.

Die zwei obigen Felder werden in einer vorangehenden load-Anweisung mit der Funktion `dayend()` erstellt, und sie liefern die ersten beiden Parameter, `time` und `period_no`.

Ladeskript

```
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT'; 
						
Services: 
   Load 
     *, 
     dayend(service_date,-3) as deposit_due_date, 
     dayend(service_date,7) as final_payment_due_date 
     ; 
Load 
service_id, 
service_date, 
amount 
Inline  
[ 
service_id, service_date,amount
1,03/11/2022 9:25:14 AM,231.24 
2,03/12/2022 10:06:54 AM,567.28 
3,03/13/2022 10:44:42 AM,364.28 
4,03/14/2022 11:33:30 AM,575.76 
5,03/15/2022 12:58:14 PM,638.68 
6,03/16/2022 4:23:12 PM,785.38 
7,03/17/2022 6:42:15 PM,967.46 
8,03/18/2022 7:41:16 PM,287.67 
9,03/19/2022 8:14:15 PM,764.45 
10,03/20/2022 9:23:51 PM,875.43 
11,03/21/2022 10:04:41 PM,957.35 
]; 
```

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:

* `service_date`

* `deposit_due_date`

* `final_payment_due_date`

Ergebnistabelle

| service\_date | deposit\_due\_date | final\_payment\_due\_date |
| --- | --- | --- |
| 03/11/2022 9:25:14 AM | 3/8/2022 11:59:59 PM | 3/18/2022 11:59:59 PM |
| 03/12/2022 10:06:54 AM | 3/9/2022 11:59:59 PM | 3/19/2022 11:59:59 PM |
| 03/13/2022 10:44:42 AM | 3/10/2022 11:59:59 PM | 3/20/2022 11:59:59 PM |
| 03/14/2022 11:33:30 AM | 3/11/2022 11:59:59 PM | 3/21/2022 11:59:59 PM |
| 03/15/2022 12:58:14 PM | 3/12/2022 11:59:59 PM | 3/22/2022 11:59:59 PM |
| 03/16/2022 4:23:12 PM | 3/13/2022 11:59:59 PM | 3/23/2022 11:59:59 PM |
| 03/17/2022 6:42:15 PM | 3/14/2022 11:59:59 PM | 3/24/2022 11:59:59 PM |
| 03/18/2022 7:41:16 PM | 3/15/2022 11:59:59 PM | 3/25/2022 11:59:59 PM |
| 03/19/2022 8:14:15 PM | 3/16/2022 11:59:59 PM | 3/26/2022 11:59:59 PM |
| 03/20/2022 9:23:51 PM | 3/17/2022 11:59:59 PM | 3/27/2022 11:59:59 PM |
| 03/21/2022 10:04:41 PM | 3/18/2022 11:59:59 PM | 3/28/2022 11:59:59 PM |

Die Werte der neuen Felder sind im `TimestampFormat M/D/YYYY h:mm:ss[.fff] TT`. Da die Funktion `dayend()` verwendet wurde, sind die Zeitstempelwerte alle die letzte Millisekunde des Tages.

Die Werte für die Fälligkeit der Anzahlung sind drei Tage vor dem Fälligkeitsdatum des Dienstes, da das zweite Argument, das in der Funktion `dayend()` übergeben wird, negativ ist.

Die Werte für die Fälligkeit der abschließenden Zahlung sind sieben Tage nach dem Fälligkeitsdatum des Dienstes, da das zweite Argument, das in der Funktion `dayend()` übergeben wird, positiv ist.

## Beispiel 3 – day\_start script

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/dayend.htm)

#### Ladeskript und Ergebnisse

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.

Der Datensatz und das Szenario in diesem Beispiel sind die Gleichen wie im vorherigen Beispiel.

Wie im vorherigen Beispiel erstellen Sie zwei neue Felder:

* `deposit_due_date`: Das Datum, an dem die Anzahlung eingehen sollte. Dies ist das Tagesende drei Tage vor dem `service_date`.

* `final_payment_due_date`: Das Datum, an dem die abschließende Zahlung eingehen sollte. Dies ist das Tagesende sieben Tage nach dem `service_date`.

Ihr Unternehmen möchte aber mit einer Richtlinie arbeiten, bei der der Arbeitstag um 5 Uhr nachmittags beginnt und um 5 Uhr nachmittags am Folgetag endet. Ihr Unternehmen kann dann Transaktionen überwachen, die während dieser Arbeitsstunden stattgefunden haben.

Um diese Anforderungen zu erfüllen, werden die zwei obigen Felder in einer vorangehenden load-Anweisung mit der Funktion `dayend()` erstellt und verwenden alle drei Argumente, `time`, `period_no` und `day_start`.

Ladeskript

```
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT'; 

Services: 
   Load 
     *, 
     dayend(service_date,-3,17/24) as deposit_due_date, 
     dayend(service_date,7,17/24) as final_payment_due_date 
     ; 
Load 
service_id, 
service_date, 
amount 
Inline  
[ 
service_id, service_date,amount 
1,03/11/2022 9:25:14 AM,231.24 
2,03/12/2022 10:06:54 AM,567.28 
3,03/13/2022 10:44:42 AM,364.28 
4,03/14/2022 11:33:30 AM,575.76 
5,03/15/2022 12:58:14 PM,638.68 
6,03/16/2022 4:23:12 PM,785.38 
7,03/17/2022 6:42:15 PM,967.46 
8,03/18/2022 7:41:16 PM,287.67 
9,03/19/2022 8:14:15 PM,764.45 
10,03/20/2022 9:23:51 PM,875.43 
11,03/21/2022 10:04:41 PM,957.35 
]; 
```

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:

* `service_date`

* `deposit_due_date`

* `final_payment_due_date`

Ergebnistabelle

| service\_date | deposit\_due\_date | final\_payment\_due\_date |
| --- | --- | --- |
| 03/11/2022 9:25:14 AM | 3/8/2022 4:59:59 PM | 3/18/2022 4:59:59 PM |
| 03/12/2022 10:06:54 AM | 3/9/2022 4:59:59 PM | 3/19/2022 4:59:59 PM |
| 03/13/2022 10:44:42 AM | 3/10/2022 4:59:59 PM | 3/20/2022 4:59:59 PM |
| 03/14/2022 11:33:30 AM | 3/11/2022 4:59:59 PM | 3/21/2022 4:59:59 PM |
| 03/15/2022 12:58:14 PM | 3/12/2022 4:59:59 PM | 3/22/2022 4:59:59 PM |
| 03/16/2022 4:23:12 PM | 3/13/2022 4:59:59 PM | 3/23/2022 4:59:59 PM |
| 03/17/2022 6:42:15 PM | 3/14/2022 4:59:59 PM | 3/24/2022 4:59:59 PM |
| 03/18/2022 7:41:16 PM | 3/15/2022 4:59:59 PM | 3/25/2022 4:59:59 PM |
| 03/19/2022 8:14:15 PM | 3/16/2022 4:59:59 PM | 3/26/2022 4:59:59 PM |
| 03/20/2022 9:23:51 PM | 3/17/2022 4:59:59 PM | 3/27/2022 4:59:59 PM |
| 03/21/2022 10:04:41 PM | 3/18/2022 4:59:59 PM | 3/28/2022 4:59:59 PM |

Die Datumsangaben sind die gleichen wie in Beispiel 2, weisen aber jetzt einen Zeitstempel mit der letzten Millisekunde vor 5 Uhr nachmittags auf, weil der Wert des dritten Arguments, `day_start`, der in der Funktion `dayend()` übergeben wurde, 17/24 war.

## Beispiel 4 – Diagrammbeispiel

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/dayend.htm)

#### Ladeskript und Diagrammformel

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.

Der Datensatz und das Szenario in diesem Beispiel sind die Gleichen wie in vorherigen zwei Beispielen. Ihr Unternehmen möchte mit einer Richtlinie arbeiten, bei der der Arbeitstag um 5 Uhr nachmittags beginnt und um 5 Uhr nachmittags am Folgetag endet.

Wie im vorherigen Beispiel erstellen Sie zwei neue Felder:

* deposit\_due\_date: Das Datum, an dem die Anzahlung eingehen sollte. Dies ist das Tagesende drei Tage vor dem service\_date.

* final\_payment\_due\_date: Das Datum, an dem die abschließende Zahlung eingehen sollte. Dies ist das Tagesende sieben Tage nach dem service\_date.

Ladeskript

```
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT'; 

Services: 
Load 
service_id, 
service_date, 
amount 
Inline  
[ 
service_id, service_date,amount 
1,03/11/2022 9:25:14 AM,231.24 
2,03/12/2022 10:06:54 AM,567.28 
3,03/13/2022 10:44:42 AM,364.28 
4,03/14/2022 11:33:30 AM,575.76 
5,03/15/2022 12:58:14 PM,638.68 
6,03/16/2022 4:23:12 PM,785.38 
7,03/17/2022 6:42:15 PM,967.46 
8,03/18/2022 7:41:16 PM,287.67 
9,03/19/2022 8:14:15 PM,764.45 
10,03/20/2022 9:23:51 PM,875.43 
11,03/21/2022 10:04:41 PM,957.35 
]; 
```

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie dieses Feld als Dimension hinzu:

service\_date.

Um das Feld deposit\_due\_date zu erstellen, erstellen Sie diese Kennzahl.

=dayend(service\_date,-3,17/24).

Um das Feld final\_payment\_due\_date zu erstellen, erstellen Sie dann diese Kennzahl:

=dayend(service\_date,7,17/24).

Ergebnistabelle

| service\_date | =dayend(service\_date,-3,17/24) | =dayend(service\_date,7,17/24 |
| --- | --- | --- |
| 03/11/2022 | 3/8/2022 16:59:59 PM | 3/18/2022 16:59:59 PM |
| 03/12/2022 | 3/9/2022 16:59:59 PM | 3/19/2022 16:59:59 PM |
| 03/13/2022 | 3/10/2022 16:59:59 PM | 3/20/2022 16:59:59 PM |
| 03/14/2022 | 3/11/2022 16:59:59 PM | 3/21/2022 16:59:59 PM |
| 03/15/2022 | 3/12/2022 16:59:59 PM | 3/22/2022 16:59:59 PM |
| 03/16/2022 | 3/13/2022 16:59:59 PM | 3/23/2022 16:59:59 PM |
| 03/17/2022 | 3/14/2022 16:59:59 PM | 3/24/2022 16:59:59 PM |
| 03/18/2022 | 3/15/2022 16:59:59 PM | 3/25/2022 16:59:59 PM |
| 03/19/2022 | 3/16/2022 16:59:59 PM | 3/26/2022 16:59:59 PM |
| 03/20/2022 | 3/17/2022 16:59:59 PM | 3/27/2022 16:59:59 PM |
| 03/21/2022 | 3/18/2022 16:59:59 PM | 3/28/2022 16:59:59 PM |

Die Werte der neuen Felder sind im TimestampFormat M/D/YYYY h:mm:ss[.fff] TT. Da die Funktion dayend() verwendet wurde, sind die Zeitstempelwerte alle die letzte Millisekunde des Tages.

Die Werte für die Fälligkeit der Zahlung sind drei Tage vor dem Fälligkeitsdatum des Dienstes, da das zweite Argument, das in der Funktion dayend() übergeben wird, negativ ist.

Die Werte für die Fälligkeit der abschließenden Zahlung sind sieben Tage nach dem Fälligkeitsdatum des Dienstes, da das zweite Argument, das in der Funktion dayend() übergeben wird, positiv ist.

Die Datumsangaben weisen einen Zeitstempel mit der letzten Millisekunde vor 17 Uhr auf, weil der Wert des dritten Arguments, day\_start, der in der Funktion dayend() übergeben wurde, 17/24 war.

## Weitere Informationen

* [Laden von Daten aus bereits geladenen Tabellen](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/load-data-from-previously-loaded-table.htm)

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. |