Datumfuncties

Datums zijn een veelvoorkomend element in veel databronnen. Als een veld herkenbare datums bevat, zal het als datatype datum of datumtijd hebben. Wanneer datumvelden in de visualisatie worden gebruikt, krijgen deze een speciale set functionaliteiten, waaronder automatisch meer details weergeven van de datumhiërarchie, datumspecifieke filteropties en gespecialiseerde opties voor datumopmaak. Voor het gebruik van datums in berekeningen zijn vaak datumspecifieke functies nodig.

Vertrouwd raken met andere datumconcepten

Datumfuncties verwijzen soms naar datumspecifieke elementen, waaronder het argument date_part, de optionele parameter [start_of_week] en letterlijke datums (#). Deze worden aan het einde van dit onderwerp uitgebreider besproken.

Er zijn nog diverse andere onderwerpen die interessant kunnen zijn, maar die geen deel uitmaken van datumfuncties:

Tip: wordt uw veld al herkend als datum (er staat een datumpictogram in het deelvenster Data) en wilt u bepalen hoe het in de visualisatie wordt weergegeven?

Mogelijk moet u de datum opmaken in plaats van een datumfunctie te gebruiken. Zien Aangepaste datumopmaak en gerelateerde onderwerpen voor het werken met datumvelden. Met de datumfuncties op deze pagina kunt u berekende datumvelden bewerken, maar u kunt de weergaveopmaak ervan niet instellen.

Datumfuncties beschikbaar in Tableau

DATE

Functie voor typeconversie waarmee tekenreeks- en numerieke expressies worden omgezet in datums, zolang ze een herkenbare notatie hebben.

SyntaxisDATE(expression)
UitvoerDatum
DefinitieRetourneert een datum voor een opgegeven getal, tekenreeks of datum <expression>.
Voorbeeld
DATE([Employee Start Date])
DATE("September 22, 2018") 
DATE("9/22/2018")
DATE(#2018-09-22 14:52#)
Opmerkingen

Anders dan bij DATEPARSE, is het niet nodig om een patroon te verstrekken, aangezien DATE automatisch veel standaard datumnotaties herkent. Als DATE de invoer niet herkent, probeer het dan met DATEPARSE en geef de notatie op.

MAKEDATE is een andere soortgelijke functie, maar MAKEDATE vereist de invoer van numerieke waarden voor jaar, maand en dag.

DATEADD

Voegt een bepaald aantal datumdelen (maanden, dagen, enz.) toe aan de begindatum.

SyntaxisDATEADD(date_part, interval, date)
UitvoerDatum
DefinitieRetourneert de <date> met het opgegeven aantal <interval> toegevoegd aan de opgegeven <date_part> van die datum. Bijvoorbeeld door drie maanden of twaalf dagen aan een begindatum toe te voegen.
Voorbeeld

Verschuif alle vervaldatums met een week

DATEADD('week', 1, [due date])

Voeg 280 dagen toe aan de datum 20 februari 2021

DATEADD('day', 280, #2/20/21#) = #November 27, 2021#
OpmerkingenOndersteunt ISO 8601-datums.

DATEDIFF

Retourneert het aantal datumdelen (weken, jaren, enz.) tussen twee datums.

SyntaxisDATEDIFF(date_part, date1, date2, [start_of_week])
UitvoerGeheel getal
DefinitieRetourneert het verschil tussen <date1> en <date2n> uitgedrukt in eenheden van <date_part>. Bijvoorbeeld door de datums waarop iemand bij een band kwam en deze verliet van elkaar af te trekken om te zien hoe lang deze persoon in de band zat.
Voorbeeld

Aantal dagen tussen 25 maart 1986 en 20 februari 2021

DATEDIFF('day', #3/25/1986#, #2/20/2021#) = 12,751

Hoeveel maanden zat iemand in een band?

DATEDIFF('month', [date joined band], [date left band])
OpmerkingenOndersteunt ISO 8601-datums.

DATENAME

Retourneert de naam van de opgegeven datum als een discrete tekenreeks.

SyntaxisDATENAME(date_part, date, [start_of_week])
UitvoerTekenreeks
DefinitieRetourneert <date_part> van <date> als tekenreeks.
Voorbeeld
DATENAME('year', #3/25/1986#) = "1986"
DATENAME('month', #1986-03-25#) = "March"
Opmerkingen

Ondersteunt ISO 8601-datums.

Een zeer vergelijkbare berekening is DATEPART, die de waarde van het opgegeven datumgedeelte retourneert als doorlopend geheel getal. DATEPART kan sneller zijn omdat het een numerieke bewerking is.

Door de kenmerken van het resultaat van de berekening (dimensie of meetwaarde, doorlopend of discreet) en de datumnotatie te wijzigen, kunnen de resultaten van DATEPART en DATENAME worden geformatteerd zodat ze identiek zijn.

Een inverse functie is DATEPARSE, die een tekenreekswaarde neemt en deze opmaakt als datum.

DATEPARSE

Retourneert specifiek geformatteerde tekenreeksen als datums.

SyntaxisDATEPARSE(date_format, date_string)
UitvoerDatum
DefinitieHet argument <date_format> beschrijft hoe het veld <date_string> is gerangschikt. Vanwege de verscheidenheid aan manieren waarop het tekenreeksveld kan worden geordend, moet <date_format> exact overeenkomen. Zie Een veld converteren naar een datumveld(Link wordt in een nieuw venster geopend) voor een volledige uitleg.
Voorbeeld
DATEPARSE('yyyy-MM-dd', "1986-03-25") = #March 25, 1986#
Opmerkingen

DATE is een soortgelijke functie die automatisch veel standaard datumopmaken herkent. DATEPARSE kan een betere optie zijn als DATE het invoerpatroon niet herkent.

MAKEDATE is een andere soortgelijke functie, maar MAKEDATE vereist de invoer van numerieke waarden voor jaar, maand en dag.

Inverse functies, die datums uit elkaar halen en de waarde van hun onderdelen retourneren, zijn DATEPART (uitvoer van geheel getal) en DATENAME (uitvoer van tekenreeks).

Beperkingen voor database

DATEPARSE is beschikbaar via de volgende connectors: niet-verouderde Excel- en tekstbestandsverbindingen, Amazon EMR Hadoop Hive, Cloudera Hadoop, Google Sheets, Hortonworks Hadoop Hive, MapR Hadoop Hive, MySQL, Oracle, PostgreSQL en Tableau-extracten. Sommige notaties zijn mogelijk niet voor alle verbindingen beschikbaar.

DATEPARSE wordt niet ondersteund op Hive-varianten. Alleen Denodo, Drill en Snowflake worden ondersteund.

DATEPART

Retourneert de naam van de opgegeven datum als geheel getal.

SyntaxisDATEPART(date_part, date, [start_of_week])
UitvoerGeheel getal
DefinitieRetourneert <date_part> van <date> als geheel getal.
Voorbeeld
DATEPART('year', #1986-03-25#) = 1986
DATEPART('month', #1986-03-25#) = 3
Opmerkingen

Ondersteunt ISO 8601-datums.

Een zeer vergelijkbare berekening is DATENAME, die de naam van het opgegeven datumgedeelte retourneert als discrete tekenreeks. DATEPART kan sneller zijn omdat het een numerieke bewerking is. Door de kenmerken van het veld (dimensie of meetwaarde, doorlopend of discreet) en de datumnotatie te wijzigen, kunnen de resultaten van DATEPART en DATENAME worden geformatteerd zodat ze identiek zijn.

Een inverse functie is DATEPARSE, die een tekenreekswaarde neemt en deze opmaakt als datum.

DATETRUNC

Deze functie kan worden beschouwd als het afronden van datums. Het neemt een specifieke datum en retourneert een versie van die datum met de gewenste specificiteit. Omdat elke datum een waarde moet hebben voor dag, maand, kwartaal en jaar, stelt DATETRUNC de waarden in als de laagste waarde voor elk datumdeel tot aan het opgegeven datumdeel. Raadpleeg het voorbeeld voor meer informatie.

SyntaxisDATETRUNC(date_part, date, [start_of_week])
UitvoerDatum
DefinitieVerkort de <date> met de nauwkeurigheid die wordt aangegeven door de <date_part>. Deze functie retourneert een nieuwe datum. Wanneer u bijvoorbeeld een datum afkapt die in het midden van de maand valt op maandniveau, retourneert deze functie de eerste dag van de maand.
Voorbeeld
DATETRUNC('day', #9/22/2018#) = #9/22/2018#
DATETRUNC('iso-week', #9/22/2018#) = #9/17/2018#

(de maandag van de week met 22-09-2018)

DATETRUNC(quarter, #9/22/2018#) = #7/1/2018# 

(de eerste dag van het kwartaal met 22-09-2018)

Let op: voor week- en iso-week komt start_of_week in het spel. ISO-weken beginnen altijd op maandag. Voor de landinstelling van dit voorbeeld betekent een niet-gespecificeerde start_of_week dat de week op zondag begint.

Opmerkingen

Ondersteunt ISO 8601-datums.

U mag DATETRUNC niet gebruiken om bijvoorbeeld te stoppen met het weergeven van de tijd voor een veld voor datumtijd in een visualisatie. Als u de weergave van een datum in plaats van de nauwkeurigheid ervan wilt afronden, pas de opmaak dan aan(Link wordt in een nieuw venster geopend).

DATETRUNC('day', #5/17/2022 3:12:48 PM#) zou bijvoorbeeld, indien geformatteerd in de visualisatie om seconden weer te geven, worden weergegeven als 5/17/2022 12:00:00 AM.

DAY

Retourneert de dag van de maand (1-31) als geheel getal.

SyntaxisDAY(date)
UitvoerGeheel getal
DefinitieRetourneert de dag van de opgegeven <date> als geheel getal.
Voorbeeld
Day(#September 22, 2018#) = 22
OpmerkingenZie ook WEEK, MONTH, QUARTER, YEAR en de ISO-equivalenten.

ISDATE

Controleer of de tekenreeks een geldige datumopmaak is.

SyntaxisISDATE(string)
UitvoerBooleaanse waarde
DefinitieRetourneert waar als een opgegeven <string> een geldige datum is.
Voorbeeld
ISDATE(09/22/2018) = true
ISDATE(22SEP18) = false
OpmerkingenHet vereiste argument moet een tekenreeks zijn. ISDATE kan niet worden gebruikt voor een veld met een type datuminformatie. Deze berekening retourneert een fout.

ISOQUARTER

SyntaxisISOQUARTER(date)
UitvoerGeheel getal
DefinitieRetourneert het ISO8601-kwartaal op weekbasis van een opgegeven <date> als geheel getal.
Voorbeeld
ISOQUARTER(#1986-03-25#) = 1
OpmerkingenZie ook ISOWEEK, ISOWEEKDAY, ISOYEAR en de niet-ISO-equivalenten.

ISOWEEK

SyntaxisISOWEEK(date)
UitvoerGeheel getal
DefinitieRetourneert de ISO8601-week op weekbasis van een opgegeven <date> als geheel getal.
Voorbeeld
ISOWEEK(#1986-03-25#) = 13
OpmerkingenZie ook ISOWEEKDAY, ISOQUARTER, ISOYEAR en de niet-ISO-equivalenten.

ISOWEEKDAY

SyntaxisISOWEEKDAY(date)
UitvoerGeheel getal
DefinitieRetourneert de ISO8601-weekdag op weekbasis van een opgegeven <date> als geheel getal.
Voorbeeld
ISOWEEKDAY(#1986-03-25#) = 2
OpmerkingenZie ook ISOWEEK, ISOQUARTER, ISOYEAR en de niet-ISO-equivalenten.

ISOYEAR

SyntaxisISOYEAR(date)
UitvoerGeheel getal
DefinitieRetourneert het ISO8601-jaar op weekbasis van een opgegeven <date> als geheel getal.
Voorbeeld
ISOYEAR(#1986-03-25#) = 1,986
OpmerkingenZie ook ISOWEEK, ISOWEEKDAY, ISOQUARTER en de niet-ISO-equivalenten.

MAKEDATE

SyntaxisMAKEDATE(year, month, day)
UitvoerDatum
DefinitieRetourneert een datumwaarde die is samengesteld uit de opgegeven <year>, <monthg> en <day>.
Voorbeeld
MAKEDATE(1986,3,25) = #1986-03-25#
Opmerkingen

Opmerking: onjuist ingevoerde waarden worden aangepast naar een datum, zoals MAKEDATE(2020,4,31) = May 1, 2020 in plaats van de foutmelding dat er geen 31e dag van april is.

Beschikbaar voor Tableau-data-extracten. Controleer de beschikbaarheid in andere databronnen.

MAKEDATE vereist numerieke invoer voor de onderdelen van een datum. Als uw data een tekenreeks betreffen die een datum zou moeten zijn, probeer dan de volgende functie: DATE. DATE herkent automatisch veel standaard datumopmaken. Als DATE de invoer niet herkent, probeer dan DATEPARSE.

MAKEDATETIME

SyntaxisMAKEDATETIME(date, time)
UitvoerDatumtijd
DefinitieRetourneert een datumtijd die <date> en een <time> combineert. De datum kan een datum, datumtijd of een tekenreeks zijn. De tijd moet een datumtijd zijn.
Voorbeeld
MAKEDATETIME("1899-12-30", #07:59:00#) = #12/30/1899 7:59:00 AM#
MAKEDATETIME([Date], [Time]) = #1/1/2001 6:00:00 AM#
Opmerkingen

Deze functie is alleen beschikbaar voor met MySQL compatibele verbindingen (voor Tableau zijn dat MySQL en Amazon Aurora).

MAKETIME is een vergelijkbare functie beschikbaar voor Tableau-data-extracten en enkele andere databronnen.

MAKETIME

SyntaxisMAKETIME(hour, minute, second)
UitvoerDatumtijd
DefinitieRetourneert een datumwaarde die is samengesteld uit de opgegeven <hour>, <minute> en <second>.
Voorbeeld
MAKETIME(14, 52, 40) = #1/1/1899 14:52:40#
Opmerkingen

Omdat Tableau geen type tijddata ondersteunt (alleen datumtijd), is de uitvoer een datumtijd. Het datumgedeelte van het veld is 1/1/1899.

Vergelijkbare functie als MAKEDATETIME, die alleen beschikbaar is voor met MYSQL compatibele verbindingen.

MAX

SyntaxisMAX(expression) of MAX(expr1, expr2)
UitvoerHetzelfde datatype als het argument, of NULL als een deel van het argument null is.
Definitie

Retourneert het maximum van de twee argumenten. Deze moeten van hetzelfde datatype zijn.

MAX kan ook worden toegepast op een enkel veld als aggregatie.

Voorbeeld
MAX(4,7) = 7
MAX(#3/25/1986#, #2/20/2021#) = #2/20/2021#
MAX([Name]) = "Zander"
Opmerkingen

Voor tekenreeksen

MAX is meestal de waarde die als laatste in alfabetische volgorde staat.

Bij databasedatabronnen is de tekenreekswaarde MAX de hoogste in de sorteervolgorde die door de database voor die kolom is gedefinieerd.

Voor datums

Voor datums is MAX de meest recente datum. Als MAX een aggregatie is, zal het resultaat geen datumhiërarchie hebben. Als MAX een vergelijking is, behoudt het resultaat de datumhiërarchie.

Als een aggregatie

MAX(expression) is een geaggregeerde functie en retourneert één geaggregeerd resultaat. Dit wordt weergegeven als AGG(expression) in de visualisatie.

Ter vergelijking

MAX(expr1, expr2) vergelijkt de twee waarden en retourneert een waarde op rijniveau.

Zie ook MIN.

MIN

SyntaxisMIN(expression) of MIN(expr1, expr2)
UitvoerHetzelfde datatype als het argument, of NULL als een deel van het argument nul is.
Definitie

Retourneert het minimum van de twee argumenten, die van hetzelfde datatype moeten zijn.

MIN kan ook worden toegepast op een enkel veld als aggregatie.

Voorbeeld
MIN(4,7) = 4
MIN(#3/25/1986#, #2/20/2021#) = #3/25/1986#
MIN([Name]) = "Abebi"
Opmerkingen

Voor tekenreeksen

MIN is meestal de waarde die in alfabetische volgorde als eerste voorkomt.

Bij databasedatabronnen is de tekenreekswaarde MIN de laagste in de sorteervolgorde die door de database voor die kolom is gedefinieerd.

Voor datums

Voor datums is MIN de vroegste datum. Als MIN een aggregatie is, zal het resultaat geen datumhiërarchie hebben. Als MIN een vergelijking is, behoudt het resultaat de datumhiërarchie.

Als een aggregatie

MIN(expression) is een geaggregeerde functie en retourneert één geaggregeerd resultaat. Dit wordt weergegeven als AGG(expression) in de visualisatie.

Ter vergelijking

MIN(expr1, expr2) vergelijkt de twee waarden en retourneert een waarde op rijniveau.

Zie ook MAX.

MONTH

SyntaxisMONTH(date)
UitvoerGeheel getal
DefinitieRetourneert de maand van de opgegeven <date> als geheel getal.
Voorbeeld
MONTH(#1986-03-25#) = 3
OpmerkingenZie ook DAY, WEEK, QUARTER, YEAR, en de ISO-equivalenten

NOW

SyntaxisNOW()
UitvoerDatumtijd
DefinitieRetourneert de huidige systeemdatum en -tijd.
Voorbeeld
NOW() = 1986-03-25 1:08:21 PM
Opmerkingen

NOW heeft geen argument nodig.

Zie ook TODAY, een vergelijkbare berekening die een datum retourneert in plaats van een datumtijd.

Als de databron een live verbinding is, kunnen de systeemdatum en -tijd in een andere tijdzone liggen. Zie de Knowledgebase voor meer informatie over hoe u dit kunt aanpakken.

QUARTER

SyntaxisQUARTER(date)
UitvoerGeheel getal
DefinitieRetourneert het kwartaal van de opgegeven <date> als geheel getal.
Voorbeeld
QUARTER(#1986-03-25#) = 1
OpmerkingenZie ook DAY, WEEK, MONTH, YEAR, en de ISO-equivalenten

TODAY

SyntaxisTODAY()
UitvoerDatum
DefinitieRetourneert de huidige, lokale systeemdatum.
Voorbeeld
TODAY() = 1986-03-25
Opmerkingen

TODAY heeft geen argument nodig.

Zie ook NOW, een soortgelijke berekening die een datumtijd retourneert in plaats van een datum.

Als de databron een live verbinding is, kan de systeemdatum in een andere tijdzone liggen. Zie de Knowledgebase voor meer informatie over hoe u dit kunt aanpakken.

WEEK

SyntaxisWEEK(date)
UitvoerGeheel getal
DefinitieRetourneert de week van de opgegeven <date> als geheel getal.
Voorbeeld
WEEK(#1986-03-25#) = 13
OpmerkingenZie ook DAY, MONTH, QUARTER, YEAR, en de ISO-equivalenten

YEAR

SyntaxisYEAR(date)
UitvoerGeheel getal
DefinitieRetourneert het jaar van de opgegeven <date> als geheel getal.
Voorbeeld
YEAR(#1986-03-25#) = 1,986
OpmerkingenZie ook DAY, WEEK, MONTH, QUARTER, en de ISO-equivalenten

Het argument date_part

Veel datumfuncties in Tableau gebruiken het argument date_part, wat een tekenreeksconstante is die de functie vertelt welk deel van een datum moet worden overwogen, zoals dag, week, kwartaal, enz. De geldige date_part-waarden die u kunt gebruiken zijn:

date_partWaarden
'year'Viercijferig jaar
'quarter'1-4
'month'1-12 of ’januari’, 'februari’, enz.
'dayofyear'Dag van het jaar: 1 januari is 1, 1 februari is 32, enz.
'day'1-31
'weekday'1-7 of ’zondag’, ’maandag’, enz.
'week'1-52
'hour'0-23
'minute'0-59
'second'0-60
'iso-year'Viercijferig ISO 8601-jaar
'iso-quarter'1-4
'iso-week'1-52, begin van de week is altijd maandag
'iso-weekday'1-7, begin van de week is altijd maandag

De parameter [start_of_week]

Sommige functies hebben de optionele parameter [start_of_week]. De parameter start_of_week kunt u opgeven welke dag als eerste dag van de week wordt beschouwd, bijvoorbeeld 'zondag' of 'maandag'. Als u dit weglaat, wordt het begin van de week bepaald door de databron. Zie Datumeigenschappen voor een databron.

In de onderstaande voorbeelden is 22 september een zondag en 24 september een dinsdag. De functie DATEDIFF wordt gebruikt om de weken tussen deze datums te berekenen.

DATEDIFF('week', #2013-09-22#, #2013-09-24#, 'monday') = 1

  • Omdat start_of_week 'maandag' is, vallen deze datums in verschillende weken.

DATEDIFF('week', #2013-09-22#, #2013-09-24#, 'sunday') = 0

  • Omdat begin_van_de_week 'zondag' is, vallen deze datums in dezelfde week.

De letterlijke datum (#)

In voorbeelden wordt vaak het pond-symbool (#) gebruikt bij datumexpressies. Dit is de letterlijke datum, vergelijkbaar met het gebruik van aanhalingstekens voor tekstreeksen, en vertelt Tableau dat de waarde binnen de symbolen een datum is.

Zonder de letterlijke datum kunnen datums worden geïnterpreteerd als verschillende andere datatypen. Bijvoorbeeld:

OpmakenDatatypeWaarde
'25 maart 1986'Tekenreeks'25 maart 1986'
#3/25/1986#Datum#3/25/1986#
25-3-1986Zwevende decimaal0,00006042
25-3-1986Geheel getal1.958
25 maart 1986 ongeldig

Zie Syntaxis van letterlijke expressies voor meer informatie.

Een datumberekening maken

Oefen het maken van een datumberekening met gebruik van de voorbeeld databron Superstore.

  1. Maak in Tableau Desktop verbinding met de opgeslagen databron Voorbeeld - Superstore, die bij Tableau wordt geleverd.
  2. Open een werkblad.
  3. Sleep Orderdatum in het deelvenster Data onder Dimensies naar de container Rijen.
  4. Klik in de container Rijen op het pictogram Plus (+) in het veld JAAR(Orderdatum).

    KWARTAAL(Orderdatum) wordt toegevoegd aan de container Rijen en de weergave wordt bijgewerkt.

  5. Klik in de container Rijen op het plusteken (+) in het veld KWARTAAL(Orderdatum) om in te zoomen op MAAND(Orderdatum).

  6. Selecteer Analyse > Berekend veld maken.
  7. Doe het volgende in de berekeningseditor die wordt geopend:
    • Geef het berekende veld de naam: Quarter Date (Kwartaaldatum).
    • Voer de volgende formule in: DATETRUNC('quarter', [Order Date])
    • Klik op OK als u klaar bent.

      Het nieuwe berekende datumveld wordt getoond onder Dimensies in het deelvenster Data. Net als uw andere velden kunt u deze in een of meer visualisaties gebruiken.

  8. Sleep Kwartaaldatum vanuit het deelvenster Data, onder Dimensies, naar de container Rijen en plaats het rechts van MONTH(Orderdatum) De visualisatie wordt bijgewerkt met jaarwaarden. Dit komt doordat Tableau data van datums oprolt tot het hoogste detailniveau.
  9. Klik in de container Rijen met de rechtermuisknop op JAAR(Kwartaaldatum) en selecteer Exacte datum.
  10. Klik in de container Rijen opnieuw met de rechtermuisknop op JAAR(Kwartaaldatum) en selecteer Discreet.

    De visualisatie wordt bijgewerkt met de exacte kwartaaldatum voor elke rij in de tabel.

Bedankt voor uw feedback.De feedback is verzonden. Dank u wel.