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:
- Formatteren hoe een datum wordt weergegeven in een visualisatie: Aangepaste datumopmaak
- Standaard datumeigenschappen instellen: Datumeigenschappen voor een databron
- Werken met fiscale datums: Datums belastingjaar
- De ISO-8601-kalender gebruiken: ISO-8601 kalender op weekbasis
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. U wilt bijvoorbeeld 22Sept2024 weergeven als 09/24. Dit gebeurt door de datum te formatteren, niet door een berekening.
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.
Syntaxis | DATE(expression) |
Uitvoer | Datum |
Definitie | Retourneert 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
|
DATEADD
Voegt een bepaald aantal datumdelen (maanden, dagen, enz.) toe aan de begindatum.
Syntaxis | DATEADD(date_part, interval, date) |
Uitvoer | Datum |
Definitie | Retourneert 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# |
Opmerkingen | Ondersteunt ISO 8601-datums. |
DATEDIFF
Retourneert het aantal datumdelen (weken, jaren, enz.) tussen twee datums.
Syntaxis | DATEDIFF(date_part, date1, date2, [start_of_week]) |
Uitvoer | Geheel getal |
Definitie | Retourneert het verschil tussen <date1> en <date2> 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]) |
Opmerkingen | Ondersteunt ISO 8601-datums. |
DATENAME
Retourneert de naam van de opgegeven datum als een discrete tekenreeks.
Syntaxis | DATENAME(date_part, date, [start_of_week]) |
Uitvoer | Tekenreeks |
Definitie | Retourneert <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. Door de kenmerken van het resultaat van de berekening (dimensie of meetwaarde, doorlopend of discreet) en de datumnotatie te wijzigen, kunnen de resultaten van Een inverse functie is DATEPARSE, die een tekenreekswaarde neemt en deze opmaakt als datum. |
DATEPARSE
Retourneert specifiek geformatteerde tekenreeksen als datums.
Syntaxis | DATEPARSE(date_format, date_string) |
Uitvoer | Datum |
Definitie | Het 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 en informatie over notaties. |
Voorbeeld | DATEPARSE('yyyy-MM-dd', "1986-03-25") = #March 25, 1986# |
Opmerkingen |
Inverse functies, die datums uit elkaar halen en de waarde van hun onderdelen retourneren, zijn |
Beperkingen voor database |
|
DATEPART
Retourneert de naam van de opgegeven datum als geheel getal.
Syntaxis | DATEPART(date_part, date, [start_of_week]) |
Uitvoer | Geheel getal |
Definitie | Retourneert <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 Een inverse functie is |
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.
Syntaxis | DATETRUNC(date_part, date, [start_of_week]) |
Uitvoer | Datum |
Definitie | Verkort 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 |
Opmerkingen | Ondersteunt ISO 8601-datums. U mag
|
DAY
Retourneert de dag van de maand (1-31) als geheel getal.
Syntaxis | DAY(date) |
Uitvoer | Geheel getal |
Definitie | Retourneert de dag van de opgegeven <date> als geheel getal. |
Voorbeeld | Day(#September 22, 2018#) = 22 |
Opmerkingen | Zie ook WEEK , MONTH , QUARTER , YEAR en de ISO-equivalenten. |
ISDATE
Controleer of de tekenreeks een geldige datumopmaak is.
Syntaxis | ISDATE(string) |
Uitvoer | Booleaanse waarde |
Definitie | Retourneert waar als een opgegeven <string> een geldige datum is. |
Voorbeeld | ISDATE(09/22/2018) = true ISDATE(22SEP18) = false |
Opmerkingen | Het vereiste argument moet een tekenreeks zijn. ISDATE kan niet worden gebruikt voor een veld met een type datuminformatie. Deze berekening retourneert een fout. |
ISOQUARTER
Syntaxis | ISOQUARTER(date) |
Uitvoer | Geheel getal |
Definitie | Retourneert het ISO8601-kwartaal op weekbasis van een opgegeven <date> als geheel getal. |
Voorbeeld | ISOQUARTER(#1986-03-25#) = 1 |
Opmerkingen | Zie ook ISOWEEK , ISOWEEKDAY , ISOYEAR en de niet-ISO-equivalenten. |
ISOWEEK
Syntaxis | ISOWEEK(date) |
Uitvoer | Geheel getal |
Definitie | Retourneert de ISO8601-week op weekbasis van een opgegeven <date> als geheel getal. |
Voorbeeld | ISOWEEK(#1986-03-25#) = 13 |
Opmerkingen | Zie ook ISOWEEKDAY , ISOQUARTER , ISOYEAR en de niet-ISO-equivalenten. |
ISOWEEKDAY
Syntaxis | ISOWEEKDAY(date) |
Uitvoer | Geheel getal |
Definitie | Retourneert de ISO8601-weekdag op weekbasis van een opgegeven <date> als geheel getal. |
Voorbeeld | ISOWEEKDAY(#1986-03-25#) = 2 |
Opmerkingen | Zie ook ISOWEEK , ISOQUARTER , ISOYEAR en de niet-ISO-equivalenten. |
ISOYEAR
Syntaxis | ISOYEAR(date) |
Uitvoer | Geheel getal |
Definitie | Retourneert het ISO8601-jaar op weekbasis van een opgegeven <date> als geheel getal. |
Voorbeeld | ISOYEAR(#1986-03-25#) = 1,986 |
Opmerkingen | Zie ook ISOWEEK , ISOWEEKDAY , ISOQUARTER en de niet-ISO-equivalenten. |
MAKEDATE
Syntaxis | MAKEDATE(year, month, day) |
Uitvoer | Datum |
Definitie | Retourneert een datumwaarde die is samengesteld uit de opgegeven <year> , <month> en <day> . |
Voorbeeld | MAKEDATE(1986,3,25) = #1986-03-25# |
Opmerkingen | Opmerking: onjuist ingevoerde waarden worden aangepast naar een datum, zoals Beschikbaar voor Tableau-data-extracten. Controleer de beschikbaarheid in andere databronnen.
|
MAKEDATETIME
Syntaxis | MAKEDATETIME(date, time) |
Uitvoer | Datumtijd |
Definitie | Retourneert 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
Syntaxis | MAKETIME(hour, minute, second) |
Uitvoer | Datumtijd |
Definitie | Retourneert 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 |
MAX
Syntaxis | MAX(expression) of MAX(expr1, expr2) |
Uitvoer | Hetzelfde 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.
|
Voorbeeld | MAX(4,7) = 7 |
Opmerkingen | Voor tekenreeksen
Bij databasedatabronnen is de tekenreekswaarde Voor datums Voor datums is Als een aggregatie
Ter vergelijking
Zie ook |
MIN
Syntaxis | MIN(expression) of MIN(expr1, expr2) |
Uitvoer | Hetzelfde 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.
|
Voorbeeld | MIN(4,7) = 4 |
Opmerkingen | Voor tekenreeksen
Bij databasedatabronnen is de tekenreekswaarde Voor datums Voor datums is Als een aggregatie
Ter vergelijking
Zie ook |
MONTH
Syntaxis | MONTH(date) |
Uitvoer | Geheel getal |
Definitie | Retourneert de maand van de opgegeven <date> als geheel getal. |
Voorbeeld | MONTH(#1986-03-25#) = 3 |
Opmerkingen | Zie ook DAY , WEEK , QUARTER , YEAR , en de ISO-equivalenten |
NOW
Syntaxis | NOW() |
Uitvoer | Datumtijd |
Definitie | Retourneert de huidige systeemdatum en -tijd. |
Voorbeeld | NOW() = 1986-03-25 1:08:21 PM |
Opmerkingen |
Zie ook 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
Syntaxis | QUARTER(date) |
Uitvoer | Geheel getal |
Definitie | Retourneert het kwartaal van de opgegeven <date> als geheel getal. |
Voorbeeld | QUARTER(#1986-03-25#) = 1 |
Opmerkingen | Zie ook DAY , WEEK , MONTH , YEAR , en de ISO-equivalenten |
TODAY
Syntaxis | TODAY() |
Uitvoer | Datum |
Definitie | Retourneert de huidige, lokale systeemdatum. |
Voorbeeld | TODAY() = 1986-03-25 |
Opmerkingen |
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
Syntaxis | WEEK(date) |
Uitvoer | Geheel getal |
Definitie | Retourneert de week van de opgegeven <date> als geheel getal. |
Voorbeeld | WEEK(#1986-03-25#) = 13 |
Opmerkingen | Zie ook DAY , MONTH , QUARTER , YEAR , en de ISO-equivalenten |
YEAR
Syntaxis | YEAR(date) |
Uitvoer | Geheel getal |
Definitie | Retourneert het jaar van de opgegeven <date> als geheel getal. |
Voorbeeld | YEAR(#1986-03-25#) = 1,986 |
Opmerkingen | Zie ook DAY , WEEK , MONTH , QUARTER , en de ISO-equivalenten |
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 gekozen, zoals dag, week, kwartaal, enz. De geldige date_part
-waarden die u kunt gebruiken zijn:
date_part | Waarden |
---|---|
'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:
Opmaken | Datatype | Waarde |
'25 maart 1986' | Tekenreeks | '25 maart 1986' |
#3/25/1986# | Datum | #3/25/1986# |
25-3-1986 | Zwevende decimaal | 0,00006042 |
25-3-1986 | Geheel getal | 1.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.
- Maak in Tableau Desktop verbinding met de opgeslagen databron Voorbeeld - Superstore, die bij Tableau wordt geleverd.
- Open een werkblad.
- Sleep Orderdatum in het deelvenster Data onder Dimensies naar de container Rijen.
- 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.
- Klik in de container Rijen op het plusteken (+) in het veld KWARTAAL(Orderdatum) om in te zoomen op MAAND(Orderdatum).
- Selecteer Analyse > Berekend veld maken.
- 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.
- 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.
- Klik in de container Rijen met de rechtermuisknop op JAAR(Kwartaaldatum) en selecteer Exacte datum.
- 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.