# Datum und Uhrzeit

Datums- und Zeitwerte steuern Zeitpläne, Fristen, Protokolle und Berichte in Ninox. In diesem Kapitel lernst du, wie du Datumswerte erstellst, Zeitspannen misst, Datumsbestandteile extrahierst und Werte für Auswertungen in Dashboards und Automatisierungen aufbaust.

In diesem Kapitel lernst du:

* aktuelle und feste Datums- oder Zeitwerte zu erstellen
* Datums- und Zeitausgaben zu formatieren
* verstrichene Zeit zu messen und Zeitversätze hinzuzufügen
* Bestandteile wie Jahr, Monat, Wochentag oder Quartal zu extrahieren
* aus Datumswerten Werte für Auswertungen und Geschäftslogik abzuleiten

<table><thead><tr><th width="242.81640625">Funktion (A-Z)</th><th>Aufgabe</th></tr></thead><tbody><tr><td><code>age()</code></td><td>Gibt das Alter in Jahren ab einem Datum zurück</td></tr><tr><td><code>date()</code></td><td>Erstellt ein bestimmtes Datum</td></tr><tr><td><code>datetime()</code></td><td>Erstellt ein bestimmtes Datum mit Uhrzeit</td></tr><tr><td><code>day()</code></td><td>Gibt den Tag des Monats zurück</td></tr><tr><td><code>days()</code></td><td>Gibt die Anzahl der Tage zwischen zwei Datumswerten zurück</td></tr><tr><td><code>duration()</code></td><td>Gibt die Zeitspanne zwischen zwei Datums- oder Zeitwerten zurück</td></tr><tr><td><code>endof()</code></td><td>Gibt das Ende eines Zeitraums wie eines Monats zurück</td></tr><tr><td><code>format()</code></td><td>Gibt einen Datums- oder Zeitwert als Text aus</td></tr><tr><td><code>month()</code></td><td>Gibt die Monatsnummer zurück</td></tr><tr><td><code>now()</code></td><td>Gibt das aktuelle Datum und die aktuelle Uhrzeit zurück</td></tr><tr><td><code>quarter()</code></td><td>Gibt die Quartalsnummer zurück</td></tr><tr><td><code>time()</code></td><td>Erstellt einen bestimmten Zeitwert</td></tr><tr><td><code>timeinterval()</code></td><td>Erstellt einen Zeitversatz wie 2 Stunden</td></tr><tr><td><code>timestamp()</code></td><td>Konvertiert einen Wert in einen UTC-basierten Zeitstempel</td></tr><tr><td><code>today()</code></td><td>Gibt das aktuelle Datum zurück</td></tr><tr><td><code>week()</code></td><td>Gibt die Wochennummer zurück</td></tr><tr><td><code>weekday()</code></td><td>Gibt die Wochentagsnummer zurück</td></tr><tr><td><code>workdays()</code></td><td>Gibt die Arbeitstage zwischen zwei Datumswerten zurück</td></tr><tr><td><code>year()</code></td><td>Gibt die Jahreszahl zurück</td></tr><tr><td><code>yearmonth()</code></td><td>Erstellt einen Jahr-Monat-Wert für Auswertungen</td></tr><tr><td><code>yearquarter()</code></td><td>Erstellt einen Jahr-Quartal-Wert für Auswertungen</td></tr><tr><td><code>yearweek()</code></td><td>Erstellt einen Jahr-Woche-Wert für Auswertungen</td></tr></tbody></table>

## Datums- und Zeitwerte erstellen

Nutze diese Funktionen, wenn du einen echten Datums- oder Zeitwert brauchst. Sie sind nützlich für Zeitstempel, Fälligkeitsdaten, Zeitpläne und Protokolle.

### Heutiges Datum mit `today()` abrufen

Nutze `today()`, wenn nur das Datum wichtig ist.

Nutze es, wenn du:

* mit einer Frist vergleichen willst
* das heutige Datum direkt oder als Basis für weitere Berechnungen nutzen willst

`today()` gibt das aktuelle Datum ohne Uhrzeit zurück.

#### Schauen wir uns einige Beispiele an:

```ninox
if today() > due_date then "Overdue" else "On time" end
```

Prüft, ob ein Datensatz überfällig ist.

```ninox
today() + 7
```

Erstellt das Datum sieben Tage ab heute.

```ninox
year(today())
```

Gibt das aktuelle Jahr aus dem heutigen Datum zurück.

### Aktuelles Datum und aktuelle Uhrzeit mit `now()` abrufen

Nutze `now()`, wenn der genaue Zeitpunkt wichtig ist.

Nutze es, wenn du:

* die Erstellung eines Datensatzes mit einem Zeitstempel versehen willst
* verstrichene Stunden oder Minuten messen willst
* Datumsberechnungen aus dem aktuellen Zeitstempel ableiten willst

`now()` gibt den exakten aktuellen Zeitstempel in dem Moment zurück, in dem die Funktion ausgeführt wird.

#### Schauen wir uns einige Beispiele an:

```ninox
created_at := now()
```

Speichert den aktuellen Zeitstempel in einem Feld.

```ninox
date(now()) + 7
```

Erstellt einen Datumswert für sieben Tage ab heute.

### Feste Werte mit `date()`, `time()` und `datetime()` erstellen

Nutze `date()`, um ein Datum zu erstellen oder einen zeitbasierten Wert in ein Datum zu konvertieren. Nutze `time()`, um einen festen Zeitwert zu erstellen. Nutze `datetime()`, um aus Zahlenwerten, einem Datum und einer Zeit oder Unix-Zeit in Millisekunden einen lokalen Zeitstempel zu erstellen.

Nutze sie, wenn du:

* ein Fälligkeitsdatum aus Jahr, Monat und Tag erstellen willst
* einen zeitbezogenen Wert in eine Uhrzeit umwandeln willst
* eine Uhrzeit für einen Termin festlegen willst

`date(any)`\
`date(year, month, day)`\
`time()`\
`time(any)`\
`time(hour, minute)`\
`time(hour, minute, second)`\
`time(hour, minute, second, millisecond)`\
`datetime(milliseconds)`\
`datetime(year, month, day)`\
`datetime(year, month, day, hour)`\
`datetime(year, month, day, hour, minute)`\
`datetime(year, month, day, hour, minute, second)`\
`datetime(year, month, day, hour, minute, second, millisecond)`\
`datetime(date, time)`

* `any` (für `date(any)`): ein Datum, Datetime oder numerischer Zeitstempel in Millisekunden
* `year`: der Jahreswert
* `month`: die Monatsnummer
* `day`: der Tag des Monats
* `hour`: der Stundenwert im 24-Stunden-Format
* `minute`: der Minutenwert
* `second`: der Sekundenwert
* `millisecond`: der Millisekundenwert
* `any` (für `time(any)`): ein Datum, Datetime, Terminrand, Zeitwert oder numerischer Zeitstempel in Millisekunden
* `date`: der Datumsanteil
* `time`: der Zeitanteil

Wenn du eine Zahl an `date(any)` übergibst, behandelt Ninox sie als Unix-Zeit in Millisekunden. Wenn du den Zeitanteil in `datetime()` weglässt, nutzt Ninox `00:00`. Wenn du eine Zahl an `time(any)` übergibst, behandelt Ninox sie als Unix-Zeit in Millisekunden.

#### Schauen wir uns einige Beispiele an:

```ninox
date(2026, 12, 31)
```

Erstellt das Datum 31. Dezember 2026.

```ninox
date(appointment)
```

Gibt den Datumsanteil aus dem Datums-/Uhrzeitfeld `appointment` zurück.

```ninox
date(2026, 8, 0)
```

Gibt den 31. Juli 2026 zurück. Nutze `0` als Tag, um den letzten Tag des vorherigen Monats zu erhalten.

```ninox
date(1617873118285)
```

Konvertiert den Unix-Zeitstempel in Millisekunden in einen Datumswert.

```ninox
time()
```

Gibt die aktuelle lokale Uhrzeit zurück.

```ninox
time(endof(appointment))
```

Gibt den Zeitanteil vom Ende des Felds `appointment` zurück.

```ninox
time(14, 30)
```

Erstellt den Zeitwert 14:30.

```ninox
time(14, 30, 45)
```

Erstellt einen Zeitwert mit Sekunden.

```ninox
time(14, 30, 45, 125)
```

Erstellt einen Zeitwert mit Millisekunden.

```ninox
datetime(2026, 4, 31)
```

Erstellt einen lokalen Zeitstempel für den 22. April 2026 um 00:00 Uhr.

```ninox
datetime(2026, 4, 22, 9)
```

Erstellt einen lokalen Zeitstempel für den 22. April 2026 um 9:00 Uhr.

```ninox
datetime(2026, 4, 22, 9, 30)
```

Erstellt einen lokalen Zeitstempel für den 22. April 2026 um 9:30 Uhr.

```ninox
datetime(2026, 4, 22, 9, 30, 45)
```

Erstellt denselben Zeitstempel wie oben mit 45 Sekunden.

```ninox
datetime(date, time)
```

Kombiniert das Datum aus dem Feld `Date` und die Uhrzeit aus dem Feld `Time` zu einem Zeitstempel.

```ninox
datetime(1617873118285)
```

Konvertiert einen Unix-Zeitstempel in Millisekunden in einen lokalen Zeitstempel.

Tipps:

* Nutze `date(year, month, 0)`, um den letzten Tag des vorherigen Monats zu erhalten.
* Nutze `datetime(date, time)`, wenn Datum und Uhrzeit in getrennten Feldern gespeichert sind.

### Werte mit `timestamp()` in UTC-basierte Zeitstempel konvertieren

Nutze `timestamp(any)`, um einen zeitbezogenen Wert in einen UTC-basierten Zeitstempel zu konvertieren.

Nutze es, wenn du:

* ein Datum oder Datetime in einen UTC-basierten Zeitstempel umwandeln willst

`timestamp(any)`

* `any`: ein zeitbezogener Wert oder eine Zahl, die Unix-Zeit in Millisekunden darstellt

Wenn die Eingabe keinen Zeitanteil hat, nutzt Ninox `00:00` in Bezug auf deine lokale Zeitzone.

#### Schauen wir uns einige Beispiele an:

```ninox
timestamp(1640991540010)
```

Konvertiert Unix-Millisekunden in einen UTC-basierten Zeitstempel.

```ninox
number(timestamp('Date + Time'))
```

Gibt die numerische Unix-Zeit in Millisekunden für den Wert `'Date + Time'` zurück.

```ninox
timestamp(format(now(), "x"))
```

Konvertiert einen Millisekundenwert in einen Zeitstempel.

Tipps:

* Nutze `number(timestamp(...))`, wenn du den Unix-Wert in Millisekunden brauchst.
* Nutze `now()`, wenn du den aktuellen lokalen Zeitstempel brauchst.

## Datums- und Zeitausgaben formatieren

Nutze `format()`, wenn du ein Datum, eine Uhrzeit, einen Zeitstempel oder einen Termin als gut lesbaren Text ausgeben willst.

Das ist nützlich für:

* Print-Layouts
* exportierte Werte

`format(value, string)`

* `value`: der Wert, den du formatieren willst
* `string`: das gewünschte Ausgabeformat als Text

Beispiele:

```ninox
format(today(), "YYYY-MM-DD")
```

Gibt einen Wert wie `2026-04-22` zurück.

```ninox
format(now(), "dddd, DD MMMM YYYY")
```

Gibt einen Wert wie `Wednesday, 23 April 2026` zurück.

```ninox
format(now(), "HH:mm")
```

Gibt einen Wert wie `14:30` zurück.

```ninox
format(now(), "hh:mm a")
```

Gibt einen Wert wie `02:30 pm` zurück.

Du kannst auch einen Sprachcode als drittes Argument übergeben:

```ninox
format(today(), "DD MMMM YYYY", "fr")
```

Damit erhältst du das formatierte Datum auf Französisch.

### Häufige Angaben für das Ausgabeformat

Nutze diese Angaben im Ausgabeformat:

<table><thead><tr><th width="133.76171875">Formatcode</th><th>Beschreibung</th><th width="259.75">Beispiel</th></tr></thead><tbody><tr><td><code>YY</code></td><td>Jahr mit 2 Ziffern</td><td><code>21</code></td></tr><tr><td><code>YYYY</code></td><td>Jahr mit 4 Ziffern</td><td><code>2021</code></td></tr><tr><td><code>M</code></td><td>Monat mit 1 oder 2 Ziffern</td><td><code>1</code> ... <code>12</code></td></tr><tr><td><code>Mo</code></td><td>Monat als Ordnungszahl</td><td><code>1st</code> ... <code>12th</code></td></tr><tr><td><code>MM</code></td><td>Monat mit 2 Ziffern</td><td><code>01</code> ... <code>12</code></td></tr><tr><td><code>MMM</code></td><td>Monatsname mit 3 Buchstaben</td><td><code>Feb</code></td></tr><tr><td><code>MMMM</code></td><td>Vollständiger Monatsname</td><td><code>February</code></td></tr><tr><td><code>D</code></td><td>Tag des Monats mit 1 oder 2 Ziffern</td><td><code>1</code> ... <code>31</code></td></tr><tr><td><code>Do</code></td><td>Tag des Monats als Ordnungszahl</td><td><code>1st</code> ... <code>31st</code></td></tr><tr><td><code>DD</code></td><td>Tag des Monats mit 2 Ziffern</td><td><code>01</code> ... <code>31</code></td></tr><tr><td><code>d</code></td><td>Wochentagsnummer</td><td><code>0</code> ... <code>6</code></td></tr><tr><td><code>do</code></td><td>Wochentagsnummer als Ordnungszahl</td><td><code>0th</code> ... <code>6th</code></td></tr><tr><td><code>dd</code></td><td>Wochentagsname mit 2 Buchstaben</td><td><code>Mo</code> ... <code>Su</code></td></tr><tr><td><code>ddd</code></td><td>Wochentagsname mit 3 Buchstaben</td><td><code>Mon</code> ... <code>Sun</code></td></tr><tr><td><code>dddd</code></td><td>Vollständiger Wochentagsname</td><td><code>Friday</code></td></tr><tr><td><code>w</code> oder <code>W</code></td><td>Kalenderwoche</td><td><code>1</code> ... <code>53</code></td></tr><tr><td><code>Q</code></td><td>Quartal</td><td><code>1</code> ... <code>4</code></td></tr><tr><td><code>l</code></td><td>Kurzes numerisches Datum</td><td><code>6/15/2021</code></td></tr><tr><td><code>L</code></td><td>Numerisches Datum mit führenden Nullen</td><td><code>06/15/2021</code></td></tr><tr><td><code>h</code></td><td>Stunde im 12-Stunden-Format mit 1 oder 2 Ziffern</td><td><code>1</code> ... <code>12</code></td></tr><tr><td><code>hh</code></td><td>Stunde im 12-Stunden-Format mit 2 Ziffern</td><td><code>01</code> ... <code>12</code></td></tr><tr><td><code>H</code></td><td>Stunde im 24-Stunden-Format mit 1 oder 2 Ziffern</td><td><code>0</code> ... <code>23</code></td></tr><tr><td><code>HH</code></td><td>Stunde im 24-Stunden-Format mit 2 Ziffern</td><td><code>00</code> ... <code>23</code></td></tr><tr><td><code>a</code></td><td><code>am</code> oder <code>pm</code></td><td><code>11:30 pm</code></td></tr><tr><td><code>m</code></td><td>Minute mit 1 oder 2 Ziffern</td><td><code>0</code> ... <code>59</code></td></tr><tr><td><code>mm</code></td><td>Minute mit 2 Ziffern</td><td><code>00</code> ... <code>59</code></td></tr><tr><td><code>s</code></td><td>Sekunde mit 1 oder 2 Ziffern</td><td><code>0</code> ... <code>59</code></td></tr><tr><td><code>ss</code></td><td>Sekunde mit 2 Ziffern</td><td><code>00</code> ... <code>59</code></td></tr><tr><td><code>x</code></td><td>Unix-Zeit in Millisekunden</td><td><code>1617873118285</code></td></tr><tr><td><code>X</code></td><td>Unix-Zeit in Sekunden</td><td><code>1617873118</code></td></tr><tr><td><code>Z</code></td><td>Zeitzonenversatz zu UTC</td><td><code>-04:00:00</code></td></tr></tbody></table>

Tipps:

* Kombiniere die Angaben, um dein eigenes Ausgabeformat zu erstellen.
* Nutze `HH:mm` für die 24-Stunden-Uhrzeit.
* Nutze `hh:mm a` für die 12-Stunden-Uhrzeit.
* Nutze `YYYY-MM-DD`, wenn du ein stabiles, sortierbares Datumsformat brauchst.
* Teste formatierte Ausgaben mit echten Werten, bevor du sie in Exporten oder Integrationen nutzt.

## Zeitspannen und Zeitversätze messen

Nutze `duration()`, um Zeitspannen zu messen. Nutze `timeinterval()`, um einen Versatz zu erstellen, den du zu einem Datum oder einer Uhrzeit addieren kannst.

### Verstrichene Zeit mit `duration()` messen

Nutze `duration()`, um eine Zeitspanne aus einem Termin oder zwischen zwei Datums- und Zeitwerten zu berechnen.

Nutze es, wenn du:

* die Laufzeit einer Aufgabe verfolgen willst
* die Länge eines Termins aus Start und Ende ermitteln willst

`duration(appointment)`\
`duration(end, start)`

* `appointment`: der Termin, für den Ninox die Dauer zurückgibt
* `end`: der spätere Wert
* `start`: der frühere Wert

Wenn das Ergebnis länger als 24 Stunden ist, zeigt Ninox zusätzlich Tage an.

#### Schauen wir uns einige Beispiele an:

```ninox
duration(end, start)
```

Gibt die Zeitspanne zwischen zwei `datetime`-Feldern "End" und "Start" zurück.

```ninox
duration(holiday)
```

Gibt die Dauer des `appointment`-Felds "Holiday" zurück.

```ninox
duration(now(), created_at)
```

Gibt die verstrichene Zeit seit der Erstellung des Datensatzes zurück.

```ninox
duration(appointment(date(2026, 3, 27), date(2026, 3, 29)))
```

Gibt eine Dauer von zwei Tagen zurück.

### Tage zwischen zwei Datumswerten mit `days()` zählen

Nutze `days()`, um die Anzahl der Kalendertage zwischen zwei Datumswerten zurückzugeben.

Nutze es, wenn du:

* prüfen willst, wie viele Tage bis zu einer Frist bleiben
* einen Datumsbereich in vollen Kalendertagen messen willst

`days(date, date)`

* erstes `date`: das Startdatum
* zweites `date`: das Enddatum

Du kannst alle Werttypen nutzen, die ein Datum enthalten.

#### Schauen wir uns einige Beispiele an:

```ninox
days(start, end)
```

Gibt die Anzahl der Tage zwischen den beiden angegebenen Datumswerten zurück.

```ninox
days(date1, date2)
```

Wenn `date1` `07/02/2026` und `date2` `12/31/2026` ist, lautet das Ergebnis `183`.

Tipps:

* Nutze `days()`, wenn du einfache Kalendertage brauchst.
* Nutze `workdays()`, wenn Wochenenden nicht zählen sollen.
* Nutze `duration()`, wenn du eine Zeitspanne und nicht nur eine Tagesanzahl brauchst.

### Arbeitstage mit `workdays()` zählen

Nutze `workdays()`, um Arbeitstage zwischen zwei Datumswerten zu zählen.

Nutze es, wenn du:

* Zeitpläne erstellen willst
* Lieferfenster verfolgen willst

`workdays(date, date)`

* erstes `date`: das Startdatum
* zweites `date`: das Enddatum

`workdays()` zählt Montag bis Freitag als Arbeitstage.

Feiertage werden nicht berücksichtigt.

Wenn du von einem Termin ausgehst, übergib `start(appointment)` und `endof(appointment)`.

#### Schauen wir uns einige Beispiele an:

```ninox
workdays(today() - 13, today() + 6)
```

Gibt `14` zurück.

```ninox
workdays(start(appointment), endof(appointment))
```

Zählt Arbeitstage über den Terminzeitraum hinweg.

### Zeitintervalle mit `timeinterval()` erstellen

Nutze `timeinterval()`, um eine wiederverwendbare Dauer zu erstellen oder einen zeitbezogenen Wert in eine Dauer zu konvertieren.

Nutze es, wenn du:

* Millisekunden in eine Dauer umwandeln willst
* einen Zeitwert in eine Dauer umwandeln willst

\
`timeinterval(number)`

* `number`: ein Zeitwert oder eine Zahl

Wenn die Eingabe eine Zahl ist, behandelt Ninox sie als Dauer in Millisekunden.

Anders als `duration()` beschreibt `timeinterval()` eine Dauer für sich. Es misst nicht die Spanne zwischen zwei Datumswerten.

#### Schauen wir uns einige Beispiele an:

```ninox
timeinterval(60000)
```

Konvertiert 60000 Millisekunden in eine Dauer von einer Minute.

```ninox
timeinterval(time(1, 30))
```

Konvertiert den Zeitwert `01:30` in eine Dauer von 1 Stunde und 30 Minuten.

```ninox
now() + timeinterval(7200000)
```

Erstellt ein `datetime` zwei Stunden ab jetzt.

Tipps:

* Nutze `duration()` für gemessene Zeitspannen.
* Nutze `timeinterval()` für geplante Dauern.

## Datumsbestandteile extrahieren

Nutze diese Funktionen, um ein Datum in kleinere Teile zu zerlegen. Sie sind nützlich für Gruppierung, Filterung und Berichte.

### Jahr, Monat und Tag mit `year()`, `month()` und `day()` abrufen

Nutze diese Funktionen, wenn du nur einen Teil eines Datums oder Zeitstempels brauchst.

`year(date)`\
`year(appointment)`\
`year(timestamp)`\
`month(date)`\
`month(appointment)`\
`month(timestamp)`\
`day(appointment)`\
`day(date)`\
`day(timestamp)`

* `date`: das Datum, aus dem Ninox den angeforderten Teil zurückgibt
* `appointment`: ein Terminwert, aus dem Ninox Jahr, Monat oder Tag vom Startdatum zurückgibt
* `timestamp`: ein Zeitstempel, aus dem Ninox den angeforderten Datumsbestandteil zurückgibt

#### Schauen wir uns einige Beispiele an:

```ninox
year(today())
```

Gibt das aktuelle Jahr zurück.

```ninox
year(endof(appointment))
```

Gibt das Jahr vom Ende des Felds `appointment` zurück.

```ninox
month(today())
```

Gibt die aktuelle Monatsnummer zurück.

```ninox
month(today()) + 3
```

Addiert drei zur aktuellen Monatsnummer.

```ninox
month(appointment)
```

Gibt die Monatsnummer vom Startdatum des Felds `appointment` zurück.

```ninox
month(now())
```

Gibt die Monatsnummer aus dem aktuellen Zeitstempel zurück.

```ninox
day(date)
```

Gibt den Tag des Monats aus dem Feld "Date" zurück.

```ninox
day(1624226400000)
```

Gibt den Tag aus einem Unix-Zeitstempel zurück.

Tipp:

* Wenn du bei einem Termin das Enddatum brauchst, umschließe ihn mit `endof()`.

### Wochentag, Woche und Quartal mit `weekday()`, `week()` und `quarter()` abrufen

Nutze diese Funktionen, wenn Kalenderzeiträume wichtig sind.

`weekday(date)`\
`weekday(timestamp)`\
`weekday(appointment)`\
`week(date)`\
`week(timestamp)`\
`week(appointment)`\
`quarter(date)`

* `date`: das Datum, aus dem Ninox den angeforderten Kalenderwert zurückgibt
* `timestamp`: ein Zeitstempel, aus dem Ninox Wochentag oder Kalenderwoche zurückgibt
* `appointment`: ein Termin, aus dem Ninox Wochentag oder Kalenderwoche des Startdatums zurückgibt

`weekday()` gibt eine Zahl von `0` bis `6` zurück, wobei Montag = `0` und Sonntag = `6` ist.

`weekday()` berücksichtigt keine Feiertage.

`quarter()` gibt eine Zahl von `1` bis `4` zurück. Wenn du einen Termin nutzt, wähle zuerst, ob du das Start- oder Enddatum brauchst.

#### Schauen wir uns einige Beispiele an:

```ninox
weekday(today())
```

Gibt die Wochentagsnummer für heute zurück.

```ninox
weekday(date(2026, 4, 22))
```

Gibt `2` zurück, weil der 22. April 2026 ein Mittwoch ist.

```ninox
if weekday(date) > 4 then "Weekend" else "Business day" end
```

Prüft, ob ein Datum auf ein Wochenende oder einen Arbeitstag fällt.

```ninox
week(today())
```

Gibt die aktuelle Wochennummer zurück.

```ninox
week(now())
```

Gibt die Kalenderwoche aus dem aktuellen Zeitstempel zurück.

```ninox
week(appointment)
```

Gibt die Kalenderwoche vom Startdatum des Felds `appointment` zurück.

```ninox
quarter(today())
```

Gibt die aktuelle Quartalsnummer zurück.

```ninox
quarter(date)
```

Gibt die Quartalsnummer aus dem Feld `date` zurück.

```ninox
quarter(start(appointment))
```

Gibt die Quartalsnummer vom Start des Felds `appointment` zurück.

```ninox
quarter(endof(appointment))
```

Gibt die Quartalsnummer vom Ende des Felds `appointment` zurück.

### Mit `endof()` zum Ende eines Zeitraums springen

Nutze `endof()`, um das Ende eines Termins oder das Ende eines Kalenderzeitraums zurückzugeben.

Nutze es, wenn du:

* den Endzeitstempel eines Termins brauchst
* Erinnerungen nahe an einer Frist auslösen willst

`endof(appointment)`

* `appointment`: das Terminfeld oder Ergebnis, aus dem Ninox den Endzeitstempel zurückgibt

#### Schauen wir uns einige Beispiele an:

```ninox
endof(appointment)
```

Gibt den Endzeitstempel des Felds `appointment` zurück.

```ninox
format(endof(holiday), "dddd, HH:mm")
```

Formatiert das Ende des Terminfelds "Holiday" als gut lesbaren Text.

## Werte für Auswertungen und geschäftsrelevante Berechnungen erstellen

Nutze diese Funktionen, wenn du kompakte Gruppierungsschlüssel oder geschäftsfreundliche Datumsberechnungen brauchst.

### Werte für Auswertungen mit `yearmonth()`, `yearweek()` und `yearquarter()` erstellen

Nutze diese Funktionen, um Datensätze über einen Zeitraum in einem Wert zu gruppieren.

Nutze sie, wenn du:

* Rechnungen nach Monat gruppieren willst
* wöchentliche Diagramme erstellen willst
* Ergebnisse nach Quartal zusammenfassen willst

`yearmonth(appointment)`\
`yearmonth(date)`\
`yearmonth(timestamp)`\
`yearweek(appointment)`\
`yearweek(date)`\
`yearweek(timestamp)`\
`yearquarter(appointment)`\
`yearquarter(date)`\
`yearquarter(datetime)`\
`yearquarter(timestamp)`

* `appointment`: ein Termin, aus dem Ninox den Wert für Auswertungen vom Startdatum erstellt
* `date`: das Datum, aus dem Ninox den Wert für Auswertungen erstellt
* `timestamp`: ein Zeitstempel, aus dem Ninox den Wert für Auswertungen erstellt

`yearmonth()` gibt einen String im Format `YYYY/MM` zurück.

`yearweek()` gibt einen String im Format `YYYY WW` zurück.

`yearquarter()` gibt einen String im Format `YYYY Qn` zurück.

Wenn du einen Termin nutzt und das Enddatum brauchst, umschließe ihn mit `endof()`.

#### Schauen wir uns einige Beispiele an:

```ninox
yearmonth(today())
```

Gibt einen kombinierten Jahr-Monat-Schlüssel für das aktuelle Datum zurück.

```ninox
yearmonth(appointment)
```

Gibt einen Wert wie `2021/06` vom Startdatum des Felds "Appointment" zurück.

```ninox
yearmonth(endof(appointment))
```

Gibt Jahr und Monat vom Ende des Felds "Appointment" zurück.

```ninox
yearweek(today())
```

Gibt einen kombinierten Jahr-Woche-Schlüssel für das aktuelle Datum zurück.

```ninox
yearweek(appointment)
```

Gibt einen Wert wie `2021 23` vom Startdatum des Felds `appointment` zurück.

```ninox
yearweek(endof(appointment))
```

Gibt Jahr und Woche vom Ende des Felds `appointment` zurück.

```ninox
yearquarter(today())
```

Gibt einen kombinierten Jahr-Quartal-Schlüssel für das aktuelle Datum zurück.

```ninox
yearquarter(appointment)
```

Gibt einen Wert wie `2021 Q2` vom Startdatum des Felds `appointment` zurück.

```ninox
yearquarter(endof(appointment))
```

Gibt Jahr und Quartal vom Ende des Felds `appointment` zurück.

### Alter mit `age()` berechnen

Nutze `age(date)`, um die Anzahl voller Jahre zwischen einem Datum und dem aktuellen Datum zurückzugeben.

Nutze es, wenn du:

* das Alter einer Person anzeigen willst

Für diese Berechnung wird immer das aktuelle Datum genutzt.

`age(date)`

* `date`: das Bezugsdatum, von dem Ninox die Anzahl voller Jahre berechnet

#### Schauen wir uns einige Beispiele an:

```ninox
age(date_of_birth)
```

Gibt das Alter in vollen Jahren aus dem Datum in `date_of_birth` zurück.

```ninox
age(date(1976, 4, 12))
```

Gibt die Anzahl voller Jahre seit dem 12. April 1976 auf Basis des heutigen Datums zurück.

## Häufige Anwendungsfälle für Datum und Uhrzeit

Diese kurzen Beispiele zeigen häufige Aufgaben mit Datum und Uhrzeit in Ninox.

### Überfällige Datensätze markieren

```ninox
if today() > due_date then "Overdue" else "On time" end
```

Vergleicht das aktuelle Datum mit einem Fälligkeitsdatum.

### SLA-Zeit seit der Erstellung messen

```ninox
duration(now(), created_at)
```

Misst die verstrichene Zeit seit der Erstellung des Datensatzes.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ninox.com/ninox-scripting/de/automate-your-workflows/work-with-functions/dates-and-time.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
