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.
Argumenten
Argument
Beschrijving
weekyear
Het jaar dat is gedefinieerd door de functie WeekYear() voor de specifieke datum is het jaar waartoe het weeknummer behoort.
InformatieHet weekjaar kan in sommige gevallen afwijken van het kalenderjaar, bijvoorbeeld als week 1 start in december van het voorgaande jaar.
week
Het weeknummer dat is gedefinieerd door de functie Week() voor de specifieke datum.
Als er geen weeknummer is aangegeven, wordt 1 verondersteld.
weekday
De dag van de week die is gedefinieerd door de functie WeekDay() voor de desbetreffende datum. 0 is de eerste dag van de week en 6 is de laatste dag van de week.
Als er geen dag van de week is aangegeven, wordt 0 verondersteld.
InformatieHoewel met 0 altijd de eerste dag van de week en met 6 altijd de laatste dag van de week wordt bedoeld, wordt de overeenkomende weekdag bepaald door de parameter first_week_day. Bij weglating wordt de waarde van de variabele FirstWeekDay gebruikt.
Als er gebroken weken worden gebruikt, samen met een onmogelijk combinatie van parameters, leidt dit mogelijk tot een resultaat dat niet tot het gekozen jaar behoort.
Voorbeeld:
MakeWeekDate(2021,1,0,6,1)
Retourneert ‘Dec 27 2020’ omdat deze dag de eerste dag (zondag) van de opgegeven week is. Jan 1 2021 was een vrijdag.
first_week_day
Geeft de dag op waarop de week begint. Bij weglating wordt de waarde van de variabele FirstWeekDay gebruikt.
De mogelijke first_week_day-waarden zijn 0 voor maandag, 1 voor dinsdag, 2 voor woensdag, 3 voor donderdag, 4 voor vrijdag, 5 voor zaterdag en 6 voor zondag.
Zie FirstWeekDay voor meer informatie over de systeemvariabele.
broken_weeks
Als u broken_weeks (gebroken weken) niet specificeert, dan wordt de waarde van variabele BrokenWeeks gebruikt om te definiëren of weken al dan niet gebroken zijn.
Zie BrokenWeeks voor meer informatie over de systeemvariabele
reference_day
Als u reference_day niet opgeeft, wordt de waarde van variabele ReferenceDay gebruikt om te definiëren welke dag in januari wordt ingesteld als referentiedag voor het definiëren van week 1.
Zie ReferenceDay voor meer informatie over de systeemvariabele
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.
De volgende voorbeelden gaan uit van het volgende:
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
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 gegevensverzameling 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.
Load-script
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Transactions:
Load
*,
makeweekdate(transaction_year, transaction_week,4) as end_of_week,
weekday(makeweekdate(transaction_year, transaction_week,4)) as week_day
;
Load * Inline [
transaction_year, transaction_week, sales
2022, 01, 10000
2022, 02, 11250
2022, 03, 9830
2022, 04, 14010
2022, 05, 28402
2022, 06, 9992
2022, 07, 7292
];
Resultaten
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.
Load-script
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Transactions:
Load
*,
makeweekdate(transaction_year, transaction_week) as first_day_of_week,
weekday(makeweekdate(transaction_year, transaction_week)) as week_day
;
Load * Inline [
transaction_year, transaction_week, sales
2022, 01, 10000
2022, 02, 11250
2022, 03, 9830
2022, 04, 14010
2022, 05, 28402
2022, 06, 9992
2022, 07, 7292
];
Resultaten
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, retourneert het veld week_day in alle gevallen maandag omdat deze parameter leeg is in de functie makeweekdate(), waardoor de standaardwaarde 0 (eerste dag van de week) wordt en de eerste dag van de week door de systeemvariabele FirstWeekDay wordt ingesteld op maandag.
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.
Load-script
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
Master_Calendar:
Load * Inline [
transaction_year, transaction_week, sales
2022, 01, 10000
2022, 02, 11250
2022, 03, 9830
2022, 04, 14010
2022, 05, 28402
2022, 06, 9992
2022, 07, 7292
];
Resultaten
Doe het volgende:
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
transaction_year
transaction_week
Om de berekening uit te voeren die equivalent is aan die uit het end_of_week-veld uit het eerste voorbeeld, maakt u de volgende meting:
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';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
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!