Deze functie retourneert een datum die is berekend voor het jaar YYYY, de week WW en de dag van de week D.
Syntaxis:
MakeWeekDate(YYYY [ , WW [ , D ] ])
Retourgegevenstypen: dual
De makeweekdate()-functie is beschikbaar zowel als een script- als een diagramfunctie. De functie berekent de datum op basis van de parameters die in de functie worden gepasseerd. Als de dag van de week-parameter wordt weggelaten, retourneert de functie de datum van de maandag van die week.
De makeweekdate()-functie houdt geen rekening met de systeemvariabelen BrokenWeek, ReferenceDay of FirstWeekDay. Week 1 begint op de eerste maandag in januari. Zo begint week 1 in 2022 op 3 januari.
Argumenten
Argument
Beschrijving
YYYY
Het jaartal als een geheel getal.
WW
De week als een geheel getal.
De week kan positief of negatief zijn en kan groter zijn dan 52 om datums in andere jaren te retourneren.
D
De dag van de week als een geheel getal.
Als er geen dag van de week is aangegeven, wordt 0 (maandag) verondersteld. De resterende dagen van de week worden als volgt toegewezen: 1 voor dinsdag, 2 voor woensdag, 3 voor donderdag, 4 voor vrijdag, 5 voor zaterdag en 6 voor zondag.
Wanneer gebruiken
De makeweekdate()-functie wordt normaliter gebruikt in het script voor het genereren van gegevens om een lijst met datums te genereren of om datums op te bouwen wanneer het jaar, de week of dag van de week in de invoergegevens zijn verstrekt.
Voorbeelden van functies
Voorbeeld
Resultaat
makeweekdate(2014,6,6)
retourneert 02/09/2014
makeweekdate(2014,6,1)
retourneert 02/04/2014
makeweekdate(2014,6)
retourneert 02/03/2014 (er wordt uitgegaan van weekdag 0)
Landinstellingen
Tenzij anders aangegeven, wordt in de voorbeelden in dit onderwerp de volgende datumindeling gebruikt: MM/DD/JJJJ. De datumopmaak wordt opgegeven in de opdracht SET DateFormat in uw script voor het laden van gegevens. De standaard datumindeling is mogelijk anders op uw systeem vanwege landinstellingen en andere factoren. U kunt de indelingen in de voorbeelden wijzigen zodat deze aansluiten op uw behoeften. Of u kunt de indelingen in uw load-script wijzigen zodat ze overeenkomen met deze voorbeelden.
Standaard landinstellingen in apps zijn gebaseerd op de regionale systeeminstellingen van de computer of server waarop Qlik Sense is geïnstalleerd. Als de Qlik Sense-server die u gebruikt is ingesteld op Zweden, gebruikt de editor voor laden van gegevens de Zweedse landinstellingen voor datums, tijd en valuta. Deze landinstellingen voor indelingen zijn niet gerelateerd aan de taal die wordt weergegeven in de gebruikersinterface van Qlik Sense. Qlik Sense wordt weergegeven in dezelfde taal als de browser die u gebruikt.
Voorbeeld 1 – Inclusief dag
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Een gegevensset met een totale verkoop per week voor 2022 in de tabel Sales.
De transactiedatums worden ingevoerd in drie velden: year, week en sales.
Een voorafgaande lading die wordt gebruikt om een meting te maken, end_of_week, met de makeweekdate()-functie om de datum voor de vrijdag van die week te retourneren met de notitie mm/dd/jjjj.
Om aan te tonen dat de geretourneerde datum een vrijdag is, wordt de end_of_week-uitdrukking ook verpakt in de weekday()-functie om de dag van de week te laten zien.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
transaction_year
transaction_week
end_of_week
week_day
Resultatentabel
transaction_year
transaction_week
end_of_week
week_day
2022
01
01/07/2022
Vr
2022
02
01/14/2022
Vr
2022
03
01/21/2022
Vr
2022
04
01/28/2022
Vr
2022
05
02/04/2022
Vr
2022
06
02/11/2022
Vr
2022
07
02/18/2022
Vr
Het veld end_of_week wordt gemaakt in de vorige load-instructie met behulp van de functie makeweekdate(). De velden transaction_year en transaction_week worden als jaar- en weekargumenten in de functie gepasseerd. Er wordt een waarde van 4 gebruikt voor het dagargument.
De functie combineert en converteert deze waarden in een datumveld en retourneert de resultaten met de notatie van de DateFormat-systeemvariabele.
De makeweekdate()-functie en de bijbehorende argumenten worden ook verpakt in een weekday()-functie om het week_day-veld te retourneren, en zoals in de bovenstaande tabel te zien is, toont het week_day-veld dat deze datums op een vrijdag vallen.
Voorbeeld 2 – Exclusief dag
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Een gegevensset met een totale verkoop per week voor 2022 in de tabel Sales.
De transactiedatums worden ingevoerd in drie velden: year, week en sales.
Een voorafgaande lading die wordt gebruikt om een meting te maken, first_day_of_week, met behulp van de makeweekdate()-functie. Dit retourneert de datum voor de maandag van die week met de notatie mm/dd/jjjj.
Om aan te tonen dat de geretourneerde datum een maandag is, wordt de first_day_of_week-uitdrukking ook verpakt in de weekday()-functie om de dag van de week te laten zien.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
transaction_year
transaction_week
first_day_of_week
week_day
Resultatentabel
transaction_year
transaction_week
first_day_of_week
week_day
2022
01
01/03/2022
Ma
2022
02
01/10/2022
Ma
2022
03
01/17/2022
Ma
2022
04
01/24/2022
Ma
2022
05
01/31/2022
Ma
2022
06
02/07/2022
Ma
2022
07
02/14/2022
Ma
Het veld first_day_of_week wordt gemaakt in de vorige load-instructie met behulp van de functie makeweekdate(). De parameters transaction_year en transaction_week worden als functie-argumenten gepasseerd en de dagparameter blijft leeg.
De functie combineert en converteert deze waarden in een datumveld en retourneert de resultaten met de notatie van de DateFormat-systeemvariabele.
De makeweekdate()-functie en de bijbehorende argumenten worden ook verpakt in een weekday()-functie om het week_day-veld te retourneren. Zoals te zien is in de bovenstaande tabel, toont het week_day-veld dat deze datums op een maandag vallen (ook al is de FirstWeekDay-variabele ingesteld op zondag als de eerste dag van de week), omdat de dagparameter in de makeweekdate()-functie is leeggelaten.
Voorbeeld 3 – diagramobjectvoorbeeld
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Een gegevensset met een totale verkoop per week voor 2022 in de tabel Sales.
De transactiedatums worden ingevoerd in drie velden: year, week en sales.
In dit voorbeeld wordt een diagramobject gebruikt om een meting te maken die equivalent is aan de end_of_week-berekening uit het eerste voorbeeld. Deze meting gebruikt de makeweekdate()-functie om de datum te retourneren voor de vrijdag van die week met de notatie mm/dd/jjjj.
Om te bewijzen dat de geretourneerde datum een vrijdag is, wordt er een tweede meting gemaakt om de dag van de week te retourneren.
Er wordt een equivalent veld voor end_of_week in het diagramobject gemaakt als een meting met behulp van de functie makeweekdate(). De velden transaction_year en transaction_week worden als jaar- en weekargumenten gepasseerd. Er wordt een waarde van 4 gebruikt voor het dagargument.
De functie combineert en converteert deze waarden in een datumveld en retourneert de resultaten met de notatie van de DateFormat-systeemvariabele.
De makeweekdate()-functie en de bijbehorende argumenten worden ook verpakt in een weekday()-functie om een berekening te retourneren die equivalent is aan die van het week_day-veld uit het eerste voorbeeld. Zoals te zien in de bovenstaande tabel, toont de laatste kolom aan de rechterkant dat deze datums op een vrijdag vallen.
Voorbeeld 4 – Scenario
Overzicht
In dit voorbeeld wordt een lijst met datums gemaakt met alle vrijdagen in 2022.
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Load-script
SET DateFormat='MM/DD/YYYY';
Calendar:
load
*,
weekday(date) as weekday
where year(date)=2022;
load
makeweekdate(2022,recno()-2,4) as date
AutoGenerate 60;
Resultaten
Resultatentabel
date
weekday
01/07/2022
Vr
01/14/2022
Vr
01/21/2022
Vr
01/28/2022
Vr
02/04/2022
Vr
02/11/2022
Vr
02/18/2022
Vr
02/25/2022
Vr
03/04/2022
Vr
03/11/2022
Vr
03/18/2022
Vr
03/25/2022
Vr
04/01/2022
Vr
04/08/2022
Vr
04/15/2022
Vr
04/22/2022
Vr
04/29/2022
Vr
05/06/2022
Vr
05/13/2022
Vr
05/20/2022
Vr
05/27/2022
Vr
06/03/2022
Vr
06/10/2022
Vr
06/17/2022
Vr
Nog 27 rijen
De makeweekdate()-functie vindt iedere vrijdag in 2022. Door gebruik van een weekparameter van -2 worden geen datums overgeslagen. Als laatste maakt een voorafgaande lading een extra weekday-veld voor duidelijkheid waarmee wordt aangetoond dat iedere date-waarde een vrijdag is.
Was deze pagina nuttig?
Als u problemen ervaart op deze pagina of de inhoud onjuist is – een typfout, een ontbrekende stap of een technische fout – laat het ons weten zodat we dit kunnen verbeteren!