Datumsfunktionen
Datumsangaben sind in vielen Datenquellen gebräuchlich. Wenn ein Feld erkennbare Datumswerte enthält, wird es vom Typ Datum oder Datum/Uhrzeit sein. Wenn Datumsfelder in der Visualisierung verwendet werden, gibt es eine bestimmte Auswahl an speziellen Funktionen, inklusive einer automatischen Aufschlüsselung der Datumshierarchie, datumsspezifische Filteroptionen und spezielle Optionen zur Datumsformatierung. Die Verwendung von Datumsangaben in Berechnungen erfordert häufig die Verwendung datumsspezifischer Funktionen.
Machen Sie sich mit anderen Datumskonzepten vertraut
Datumsfunktionen verweisen manchmal auf datumsspezifische Elemente, wie beispielsweise das Argument date_part
, der optionale Parameter [start_of_week]
und Datumssymbole (#). Diese werden am Ende dieses Themas ausführlicher erläutert.
Es gibt noch einige andere Themen, die in diesem Zusammenhang möglicherweise von Interesse sind, auch wenn sie nicht zu Datumsfunktionen gehören:
- Formatieren, wie ein Datum in einer Visualisierung angezeigt wird: Benutzerdefinierte Datumsformate
- Festlegen standardmäßiger Datumseigenschaften: Datumseigenschaften für eine Datenquelle
- Arbeiten mit steuerlichen Datumsangaben: Datumsangaben für Geschäftszeiträume
- Verwenden des ISO-8601-Kalenders: ISO-8601 Wochenbasierter Kalender
Tipp: Wird Ihr Feld bereits als Datum erkannt (es verfügt über ein Datumssymbol im Datenbereich) und Sie versuchen zu steuern, wie es in der Visualisierung angezeigt wird? Möglicherweise müssen Sie es formatieren, anstatt eine Datumsfunktion zu verwenden. Sie möchten beispielsweise 22Sept2024 als 09/24 anzeigen. Dies geschieht durch die Formatierung des Datums und nicht durch eine Berechnung.
Siehe Benutzerdefinierte Datumsformate und verwandte Themen zum Arbeiten mit Datumsfeldern. Mit den Datumsfunktionen auf dieser Seite können Sie berechnete Datumsfelder bearbeiten, aber nicht deren Anzeigeformatierung festlegen.
In Tableau verfügbare Datumsfunktionen
DATE
Eine Typumwandlungsfunktion, die Zeichenfolgen- und Zahlenausdrücke in Datumswerte ändert, sofern diese in einem erkennbaren Format angegeben sind.
Syntax | DATE(expression) |
Ausgabe | Datum |
Definition | Gibt für eine Zahl, eine Zeichenfolge oder einen Datumsausdruck <expression> ein Datum zurück. |
Beispiel | DATE([Employee Start Date]) DATE("September 22, 2018") DATE("9/22/2018") DATE(#2018-09-22 14:52#) |
Hinweise | Im Gegensatz zu
|
DATEADD
Fügt einem Teil (date_part) des Startdatum (date) ein angegebenes zeitliches Intervall (Anzahl von Monaten, Tagen usw.) hinzu.
Syntax | DATEADD(date_part, interval, date) |
Ausgabe | Datum |
Definition | Gibt das <date> mit zum festgelegten Datumsbereich <date_part> hinzugefügtem festgelegtem Zahlenintervall <interval> zurück. Beispiel: Einem Startdatum werden drei Monate oder 12 Tage hinzugefügt. |
Beispiel | Aufschieben aller Fälligkeitstermine um eine Woche DATEADD('week', 1, [due date]) Hinzufügen von 280 Tagen zum Datum "20. Februar 2021" DATEADD('day', 280, #2/20/21#) = #November 27, 2021# |
Hinweise | Datumsangaben nach ISO 8601 werden unterstützt. |
DATEDIFF
Gibt die Anzahl von Datumsteilen (Wochen, Jahr usw.) zurück, die zwischen zwei angegebenen Datumswerten liegen.
Syntax | DATEDIFF(date_part, date1, date2, [start_of_week]) |
Ausgabe | Ganzzahl |
Definition | Gibt die Differenz zwischen <date1> und <date2> zurück und verwendet dabei die Einheit von <date_part> . Beispiel: Zwei Datumsangaben sollen subtrahiert werden, um zu sehen, wie lange jemand in einer Band war. |
Beispiel | Die Anzahl der Tage zwischen dem 25. März 1986 und dem 20. Februar 2021 DATEDIFF('day', #3/25/1986#, #2/20/2021#) = 12,751 Wie viele Monate jemand in einer Band war DATEDIFF('month', [date joined band], [date left band]) |
Hinweise | Datumsangaben nach ISO 8601 werden unterstützt. |
DATENAME
Gibt den Namen des angegebenen Datumsteils als einzelne Zeichenfolge zurück.
Syntax | DATENAME(date_part, date, [start_of_week]) |
Ausgabe | Zeichenfolge |
Definition | Gibt <date_part> von <date> als Zeichenfolge zurück. |
Beispiel | DATENAME('year', #3/25/1986#) = "1986" DATENAME('month', #1986-03-25#) = "March" |
Hinweise | Datumsangaben nach ISO 8601 werden unterstützt. Eine sehr ähnliche Berechnung ist DATEPART, das den Wert des angegebenen Datumsteils als fortlaufende Ganzzahl zurückgibt. Indem Sie die Attribute des Ergebnisses der Berechnungen (Dimension oder Kennzahl, fortlaufend oder einzeln) und die Formatierung des Datums ändern, können die Ergebnisse von Eine inverse Funktion ist DATEPARSE, welche einen Zeichenfolgenwert entgegennimmt und diesen dann als ein Datum formatiert. |
DATEPARSE
Gibt speziell formatierte Zeichenfolgen Datum zurück.
Syntax | DATEPARSE(date_format, date_string) |
Ausgabe | Datum |
Definition | Das Argument <date_format> beschreibt, wie das Feld <date_string> angeordnet wird. Da das Zeichenfolgenfeld auf die unterschiedlichsten Weisen sortiert werden kann, muss <date_format> genau übereinstimmen. Eine vollständige Erklärung und Informationen zur Formatierung finden Sie unter Konvertieren eines Feldes in ein Datumsfeld(Link wird in neuem Fenster geöffnet). |
Beispiel | DATEPARSE('yyyy-MM-dd', "1986-03-25") = #March 25, 1986# |
Hinweise |
Inverse Funktionen, die ein Datum zerlegen und den Wert einzelner Teile zurückgeben, sind |
Datenbankseitige Einschränkungen |
|
DATEPART
Gibt den Namen des angegebenen Datumsteils als eine Ganzzahl zurück.
Syntax | DATEPART(date_part, date, [start_of_week]) |
Ausgabe | Ganzzahl |
Definition | Gibt <date_part> von <date> als ganze Zahl zurück. |
Beispiel | DATEPART('year', #1986-03-25#) = 1986 DATEPART('month', #1986-03-25#) = 3 |
Hinweise | Datumsangaben nach ISO 8601 werden unterstützt. Eine sehr ähnliche Berechnung ist Eine inverse Funktion ist |
DATETRUNC
Diese Funktion kann man sich als eine Rundung des Datums vorstellen. Sie nimmt ein bestimmtes Datum entgegen und gibt eine Version dieses Datums zurück, die auf der angegebenen Ebene liegt. Da jedes Datum einen Wert für Tag, Monat, Quartal und Jahr haben muss, legt DATETRUNC
die Werte als niedrigsten Wert für jeden Datumsteil bis zu dem angegebenen Datum fest. Weitere Informationen finden Sie in dem Beispiel.
Syntax | DATETRUNC(date_part, date, [start_of_week]) |
Ausgabe | Datum |
Definition | Kürzt das angegebene Datum <date> auf die durch den Datumsteil (<date_part> ) angegebene Genauigkeit. Diese Funktion gibt ein neues Datum zurück. Wenn Sie beispielsweise ein Datum, das in der Mitte eines Monats liegt, auf Monatsebene verkürzen, gibt diese Funktion den ersten Tag des Monats zurück. |
Beispiel | DATETRUNC('day', #9/22/2018#) = #9/22/2018# DATETRUNC('iso-week', #9/22/2018#) = #9/17/2018# (Der Montag der Woche, in der der 22.09.2018 liegt) DATETRUNC(quarter, #9/22/2018#) = #7/1/2018# (Der erste Tag des Quartal, in dem der 22.09.2018 liegt) Hinweis: Bei Woche und ISO-Woche kommt der Wochenanfang ( |
Hinweise | Datumsangaben nach ISO 8601 werden unterstützt. Sie sollten So würde zum Beispiel |
DAY
Gibt den Tag des Monats als Ganzzahl (1–31) zurück.
Syntax | DAY(date) |
Ausgabe | Ganzzahl |
Definition | Gibt den Tag des angegebenen Datums <date> als Ganzzahl zurück. |
Beispiel | Day(#September 22, 2018#) = 22 |
Hinweise | Siehe auch WEEK , MONTH , QUARTER , YEAR und die ISO-Äquivalente. |
ISDATE
Überprüft, ob die Zeichenfolge ein gültiges Datumsformat ist.
Syntax | ISDATE(string) |
Ausgabe | Boolesch |
Definition | Gibt "true" zurück, wenn eine angegebene Zeichenfolge (<string> ) ein gültiges Datum darstellt. |
Beispiel | ISDATE(09/22/2018) = true ISDATE(22SEP18) = false |
Hinweise | Das erforderliche Argument muss eine Zeichenfolge sein. ISDATE kann nicht für ein Feld von einem Datentyp "Datum" verwendet werden – die Berechnung würde eine Fehler zurückgeben. |
ISOQUARTER
Syntax | ISOQUARTER(date) |
Ausgabe | Ganzzahl |
Definition | Gibt das auf der ISO8601-Woche basierende Quartal eines bestimmten Datums (<date> ) als Ganzzahl zurück. |
Beispiel | ISOQUARTER(#1986-03-25#) = 1 |
Hinweise | Siehe auch ISOWEEK , ISOWEEKDAY , ISOYEAR und die Nicht-ISO-Äquivalente. |
ISOWEEK
Syntax | ISOWEEK(date) |
Ausgabe | Ganzzahl |
Definition | Gibt die auf der ISO8601-Woche basierende Woche eines bestimmten Datums (<date> ) als Ganzzahl zurück. |
Beispiel | ISOWEEK(#1986-03-25#) = 13 |
Hinweise | Siehe auch ISOWEEKDAY , ISOQUARTER , ISOYEAR und die Nicht-ISO-Äquivalente. |
ISOWEEKDAY
Syntax | ISOWEEKDAY(date) |
Ausgabe | Ganzzahl |
Definition | Gibt den auf der ISO8601-Woche basierenden Wochentag eines bestimmten Datums (<date> ) als Ganzzahl zurück. |
Beispiel | ISOWEEKDAY(#1986-03-25#) = 2 |
Hinweise | Siehe auch ISOWEEK , ISOQUARTER , ISOYEAR und die Nicht-ISO-Äquivalente. |
ISOYEAR
Syntax | ISOYEAR(date) |
Ausgabe | Ganzzahl |
Definition | Gibt das auf der ISO8601-Woche basierende Jahr eines bestimmten Datums ( <date> ) als Ganzzahl zurück. |
Beispiel | ISOYEAR(#1986-03-25#) = 1,986 |
Hinweise | Siehe auch ISOWEEK , ISOWEEKDAY , ISOQUARTER und die Nicht-ISO-Äquivalente. |
MAKEDATE
Syntax | MAKEDATE(year, month, day) |
Ausgabe | Datum |
Definition | Gibt einen Datumswert zurück, der aus den angegebenen Werten für <year> , <month> und <day> gebildet wird. |
Beispiel | MAKEDATE(1986,3,25) = #1986-03-25# |
Hinweise | Anmerkung: Fehlerhaft eingegebene Werte werden so angepasst, dass sie ein Datum ergeben. So würde zum Beispiel Ist für Extrakte verfügbar. Prüfen Sie die Verfügbarkeit in anderen Datenquellen.
|
MAKEDATETIME
Syntax | MAKEDATETIME(date, time) |
Ausgabe | Datum/Uhrzeit |
Definition | Gibt einen Datum/Zeit-Wert zurück, der ein Datum (<date> ) und eine Uhrzeit (<time> ) kombiniert. Das Datum kann den Datentyp Datum, Datum/Zeit oder Zeichenfolge haben. Die Uhrzeit muss ein Datum/Zeit-Wert sein. |
Beispiel | MAKEDATETIME("1899-12-30", #07:59:00#) = #12/30/1899 7:59:00 AM# MAKEDATETIME([Date], [Time]) = #1/1/2001 6:00:00 AM# |
Hinweise | Diese Funktion ist nur für MySQL-kompatible Verbindungen verfügbar (für Tableau wären das MySQL und Amazon Aurora).
|
MAKETIME
Syntax | MAKETIME(hour, minute, second) |
Ausgabe | Datum/Uhrzeit |
Definition | Gibt einen Datumswert zurück, der aus den angegebenen Werten für <hour> , <minute> und <second> gebildet wird. |
Beispiel | MAKETIME(14, 52, 40) = #1/1/1899 14:52:40# |
Hinweise | Da Tableau nicht den Datentyp "Uhrzeit" unterstützt, sondern nur "Datum/Uhrzeit"(datetime), ist die Ausgabe ein Wert im Format "Datum+Uhrzeit". Im Datumsteil des Feldes wird "01.01.1899" stehen. Ähnliche Funktion wie |
MAX
Syntax | MAX(expression) oder MAX(expr1, expr2) |
Ausgabe | Gleicher Datentyp wie das Argument oder NULL , wenn ein Teil des Arguments null ist. |
Definition | Gibt den Maximalwert der zwei Argumente zurück, die vom selben Datentyp sein müssen.
|
Beispiel | MAX(4,7) = 7 |
Hinweise | Für Zeichenfolgen
Bei Datenquellen einer Datenbank ist der Zeichenfolgenwert Für Datumsangaben Für Datumsangaben ist Als Aggregation
Als Vergleich
Siehe auch |
MIN
Syntax | MIN(expression) oder MIN(expr1, expr2) |
Ausgabe | Gleicher Datentyp wie das Argument oder NULL , wenn ein Teil des Arguments null ist. |
Definition | Gibt den Minimalwert der zwei Argumente zurück, die vom selben Datentyp sein müssen.
|
Beispiel | MIN(4,7) = 4 |
Hinweise | Für Zeichenfolgen
Bei Datenquellen einer Datenbank ist der Zeichenfolgenwert Für Datumsangaben Für Datumsangaben ist Als Aggregation
Als Vergleich
Siehe auch |
MONTH
Syntax | MONTH(date) |
Ausgabe | Ganzzahl |
Definition | Gibt den Monat des angegebenen Datums <date> als Ganzzahl zurück. |
Beispiel | MONTH(#1986-03-25#) = 3 |
Hinweise | Siehe auch DAY , WEEK , QUARTER , YEAR und die ISO-Äquivalente |
NOW
Syntax | NOW() |
Ausgabe | Datum/Uhrzeit |
Definition | Gibt das aktuelle lokale Systemdatum und die Uhrzeit zurück. |
Beispiel | NOW() = 1986-03-25 1:08:21 PM |
Hinweise |
Siehe auch Wenn die Verbindung eine Direktverbindung ist, könnten das Systemdatum- und -uhrzeit aus einer anderen Zeitzone stammen. Weitere Informationen dazu, wie mit solchen Fällen umgegangen wird, finden Sie in der Knowledgebase. |
QUARTER
Syntax | QUARTER(date) |
Ausgabe | Ganzzahl |
Definition | Gibt das Quartal des angegebenen Datums <date> als Ganzzahl zurück. |
Beispiel | QUARTER(#1986-03-25#) = 1 |
Hinweise | Siehe auch DAY , WEEK , MONTH , YEAR und die ISO-Äquivalente |
TODAY
Syntax | TODAY() |
Ausgabe | Datum |
Definition | Gibt das aktuelle lokale Systemdatum zurück. |
Beispiel | TODAY() = 1986-03-25 |
Hinweise |
Siehe auch NOW, eine ähnliche Berechnung, die ein Datum/Uhrzeit anstatt eines Datums zurückgibt. Wenn die Verbindung eine Direktverbindung ist, könnte das Systemdatum aus einer anderen Zeitzone stammen. Weitere Informationen dazu, wie mit solchen Fällen umgegangen wird, finden Sie in der Knowledgebase. |
WEEK
Syntax | WEEK(date) |
Ausgabe | Ganzzahl |
Definition | Gibt die Woche des angegebenen Datums <date> als Ganzzahl zurück. |
Beispiel | WEEK(#1986-03-25#) = 13 |
Hinweise | Siehe auch DAY , MONTH , QUARTER , YEAR und die ISO-Äquivalente |
YEAR
Syntax | YEAR(date) |
Ausgabe | Ganzzahl |
Definition | Gibt das Jahr des angegebenen Datums <date> als Ganzzahl zurück. |
Beispiel | YEAR(#1986-03-25#) = 1,986 |
Hinweise | Siehe auch DAY , WEEK , MONTH , QUARTER und die ISO-Äquivalente |
date_part
Viele Datumsfunktionen in Tableau nehmen das Argument date_part
entgegen, das eine Zeichenfolgenkonstante ist, die der Funktion mitteilt, welcher Teil eines angegebenen Datums berücksichtigt werden soll (z. B. der Tag, die Woche, das Quartal usw.). Die gültigen date_part
-Werte, die Sie verwenden können, sind:
date_part | Werte |
---|---|
'year' | Jahr mit vier Ziffern |
'quarter' | 1–4 |
'month' | 1–12 oder „Januar“, „Februar“ usw. |
'dayofyear' | Tag des Jahres, Jan 1 = 1, Feb 1 = 32 usw. |
'day' | 1–31 |
'weekday' | 1–7 oder „Sonntag“, „Montag“ usw. |
'week' | 1–52 |
'hour' | 0–23 |
'minute' | 0–59 |
'second' | 0–60 |
'iso-year' | Vierstellige Jahresangaben nach ISO 8601 |
'iso-quarter' | 1–4 |
'iso-week' | 1–52, Wochenstart ist immer am Montag |
'iso-weekday' | 1–7, Wochenstart ist immer am Montag |
Der Parameter [start_of_week]
Einige Funktionen haben den optionalen Parameter [start_of_week]
. Der Parameter start_of_week
kann verwendet werden, um anzugeben, welche Tag als der erste Tag der Woche gelten soll (z. B. der Sonntag oder der Montag). Wenn er nicht angegeben ist, wird der Start der Woche von der Datenquelle bestimmt. Weitere Informationen finden Sie unter Datumseigenschaften für eine Datenquelle.
Für die folgenden Beispiele ist der 22. September ein Sonntag und der 24. September ein Dienstag. Die DATEDIFF-Funktion wird verwendet, um zu berechnen, wie viele Wochen zwischen diesen beiden Datumswerten liegen.
DATEDIFF('week', #2013-09-22#, #2013-09-24#, 'monday') = 1
- Da der Wochenstart ("start_of_week") ein Montag ("monday") ist, liegen diese beiden Datumswerte in unterschiedlichen Wochen.
DATEDIFF('week', #2013-09-22#, #2013-09-24#, 'sunday') = 0
- Da der Wochenstart ("start_of_week") ein Sonntag ("sunday") ist, liegen diese beiden Datumswerte in der gleichen Woche.
Das Datums-Literal (#)
In Beispielen wird oft das Rautenzeichen (#) bei Datumsausdrücken verwendet. Das ist das Datums-Literal (vergleichbar mit Anführungszeichen, die bei Textzeichenfolgen verwendet werden). Es teilt Tableau mit, dass der Wert innerhalb dieses Zeichens ein Datum ist.
Ohne Datums-Literale könnten Datumsangaben versehentlich als diverse andere Datentypen fehlinterpretiert werden. Beispiel:
Format | Datentyp | Wert |
'March 25, 1986' | Zeichenfolge | 'March 25, 1986' |
#3/25/1986# | Datum | #3/25/1986# |
03/25/1986 | Gleitkomma | 0,00006042 |
1986-03-25 | Ganzzahl | 1.958 |
March 25, 1986 | unzulässig |
Weitere Informationen finden Sie unter Syntax literaler Ausdrücke.
Erstellen einer Datumsberechnung
Üben Sie das Erstellen einer Datumsberechnung unter Verwendung der Superstore-Beispiel-Datenquelle.
- Stellen Sie in Tableau Desktop eine Verbindung zur standardmäßig in Tableau enthaltenen gespeicherten Datenquelle Beispiel – Superstore her.
- Öffnen Sie ein Arbeitsblatt.
- Ziehen Sie den Wert Bestelldatum aus dem Bereich Daten unter "Dimensionen" in den Container Zeilen.
- Klicken Sie im Container Zeilen auf das Pluszeichen (+) im Feld YEAR(Bestelldatum).
QUARTER(Bestelldatum) wird zum Container Zeilen hinzugefügt und die Ansicht wird aktualisiert.
- Klicken Sie im Container Zeilen auf das Pluszeichen (+) im Feld QUARTER(Bestelldatum). Damit wird ein Drilldown bis zu "MONTH(Bestelldatum)" durchgeführt.
- Wählen Sie Analyse > Berechnetes Feld erstellen aus.
- Gehen Sie im daraufhin geöffneten Berechnungs-Editor wie folgt vor:
- Geben Sie dem berechneten Feld den Namen "Quartalsdatum".
- Geben Sie die folgende Formel ein:
DATETRUNC('quarter', [Order Date])
- Klicken Sie auf OK, wenn Sie fertig sind.
Das neue Feld mit dem berechneten Datum wird im Datumsfenster unter Dimensionen angezeigt. Wie bei Ihren anderen Feldern ist die Verwendung in mindestens einer Visualisierung möglich.
- Ziehen Sie Quartalsdatum im Datumsfenster in den Container Zeilen und platzieren Sie es rechts neben MONTH(Bestelldatum). Die Visualisierung wird aktualisiert und zeigt Jahreswerte an. Das liegt daran, dass Tableau für Datumsdaten einen Rollup auf den höchstmöglichen Detaillierungsgrad durchführt.
- Klicken Sie im Container "Zeilen" mit der rechten Maustaste auf JAHR(Quartalsdatum) und wählen Sie Genaues Datum aus.
- Klicken Sie im Container "Zeilen" erneut mit der rechten Maustaste auf JAHR(Quartalsdatum) und wählen Sie Diskret aus.
Die Visualisierung wird aktualisiert und zeigt das genaue Quartalsdatum für jede Zeile in der Tabelle an.