Deze functie retourneert een tijdsstempel die overeenkomt met het begin van de eerste dag van het jaar dat date bevat. De standaarduitvoernotatie is de DateFormat die is ingesteld in het script.
Met andere woorden, de functie yearstart() bepaalt in welk jaar de datum valt. Het retourneert vervolgens een tijdstempel, in datumnotatie, voor de eerste milliseconde van dat jaar. De eerste maand van het jaar is standaard januari, u kunt echter wijzigen welke maand wordt ingesteld als eerste met behulp van het argument first_month_of_year in de functie yearstart().
Wanneer gebruiken
De yearstart()-functie wordt gebruikt als onderdeel van een uitdrukking als u wilt dat in de berekening een deel van het jaar wordt gebruikt dat tot nu toe is verstreken. Bijvoorbeeld als u de rente wilt berekenen die in een jaar tot nu toe is opgebouwd.
Retourgegevenstypen: dual
Argumenten
Argument
Beschrijving
date
De te evalueren datum of tijdstempel.
period_no
period_no is een geheel getal, waarbij de waarde 0 het jaar aangeeft dat date bevat. Negatieve waarden in period_no geven voorgaande jaren aan en positieve waarden geven volgende jaren aan.
first_month_of_year
Als u wilt werken met (boek)jaren die niet in januari beginnen, geeft u een waarde op tussen 2 en 12 in first_month_of_year.
De volgende maanden kunnen worden gebruikt in de first_month_of_year argument:
waarden first_month_of_year
Month
Waarde
Februari
2
Maart
3
April
4
May
5
Juni
6
Juli
7
Augustus
8
September
9
Oktober
10
November
11
December
12
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.
Voorbeelden van functies
Voorbeeld
Resultaat
yearstart('10/19/2001')
Returns 01/01/2001 00:00:00.
yearstart('10/19/2001',-1)
Returns 01/01/2000 00:00:00.
yearstart('10/19/2001',0,4)
Returns 04/01/2001 00:00:00.
Voorbeeld 1 – Basisvoorbeeld
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 set transacties tussen 2020 en 2022 wordt geladen in een tabel met de naam 'Transactions'.
Het datumveld is opgegeven in de systeemvariabele DateFormat, indeling (MM/DD/YYYY).
Een voorgaande load-instructie die het volgende bevat:
Functie yearstart() die is ingesteld als het veld year_start.
Functie Timestamp() die is ingesteld als het veld year_start_timestamp
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
id
date
year_start
year_start_timestamp
Resultatentabel
id
date
year_start
year_start_timestamp
8188
01/13/2020
01/01/2020
1/1/2020 12:00:00 AM
8189
02/26/2020
01/01/2020
1/1/2020 12:00:00 AM
8190
03/27/2020
01/01/2020
1/1/2020 12:00:00 AM
8191
04/16/2020
01/01/2020
1/1/2020 12:00:00 AM
8192
05/21/2020
01/01/2020
1/1/2020 12:00:00 AM
8193
08/14/2020
01/01/2020
1/1/2020 12:00:00 AM
8194
10/07/2020
01/01/2020
1/1/2020 12:00:00 AM
8195
12/05/2020
01/01/2020
1/1/2020 12:00:00 AM
8196
01/22/2021
01/01/2021
1/1/2021 12:00:00 AM
8197
02/03/2021
01/01/2021
1/1/2021 12:00:00 AM
8198
03/17/2021
01/01/2021
1/1/2021 12:00:00 AM
8199
04/23/2021
01/01/2021
1/1/2021 12:00:00 AM
8200
05/04/2021
01/01/2021
1/1/2021 12:00:00 AM
8201
06/30/2021
01/01/2021
1/1/2021 12:00:00 AM
8202
07/26/2021
01/01/2021
1/1/2021 12:00:00 AM
8203
12/27/2021
01/01/2021
1/1/2021 12:00:00 AM
8204
06/06/2022
01/01/2022
1/1/2022 12:00:00 AM
8205
07/18/2022
01/01/2022
1/1/2022 12:00:00 AM
8206
11/14/2022
01/01/2022
1/1/2022 12:00:00 AM
8207
12/12/2022
01/01/2022
1/1/2022 12:00:00 AM
Het veld 'year_start' wordt gemaakt in de voorafgaande load-instructie met behulp van de functie yearstart() en geeft het datumveld door als het argument van de functie.
De functie yearstart() identificeert aanvankelijk in welk jaar de datumwaarde valt en retourneert een tijdstempel voor de eerste milliseconde van dat jaar.
Transactie 8199 vond plaats op 23 april 2021. De functie yearstart() retourneert de eerste milliseconde van dat jaar, 1 januari om 12:00:00 AM.
Voorbeeld 2 – period_no
Overzicht
Dezelfde gegevensverzameling en het scenario uit het eerste voorbeeld worden gebruikt.
In dit voorbeeld is het echter de taak om een veld te maken, 'previous_year_start', dat de tijdstempel van de startdatum van het jaar voorafgaand aan het jaar waarin de transactie plaatsvond, retourneert.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
id
date
previous_year_start
previous_ year_start_timestamp
Resultatentabel
id
date
previous_year_start
previous_year_start_timestamp
8188
01/13/2020
01/01/2019
1/1/2019 12:00:00 AM
8189
02/26/2020
01/01/2019
1/1/2019 12:00:00 AM
8190
03/27/2020
01/01/2019
1/1/2019 12:00:00 AM
8191
04/16/2020
01/01/2019
1/1/2019 12:00:00 AM
8192
05/21/2020
01/01/2019
1/1/2019 12:00:00 AM
8193
08/14/2020
01/01/2019
1/1/2019 12:00:00 AM
8194
10/07/2020
01/01/2019
1/1/2019 12:00:00 AM
8195
12/05/2020
01/01/2019
1/1/2019 12:00:00 AM
8196
01/22/2021
01/01/2020
1/1/2020 12:00:00 AM
8197
02/03/2021
01/01/2020
1/1/2020 12:00:00 AM
8198
03/17/2021
01/01/2020
1/1/2020 12:00:00 AM
8199
04/23/2021
01/01/2020
1/1/2020 12:00:00 AM
8200
05/04/2021
01/01/2020
1/1/2020 12:00:00 AM
8201
06/30/2021
01/01/2020
1/1/2020 12:00:00 AM
8202
07/26/2021
01/01/2020
1/1/2020 12:00:00 AM
8203
12/27/2021
01/01/2020
1/1/2020 12:00:00 AM
8204
06/06/2022
01/01/2021
1/1/2021 12:00:00 AM
8205
07/18/2022
01/01/2021
1/1/2021 12:00:00 AM
8206
11/14/2022
01/01/2021
1/1/2021 12:00:00 AM
8207
12/12/2022
01/01/2021
1/1/2021 12:00:00 AM
Omdat in deze instantie een period_no van -1 wordt gebruikt als het offset-argument in de functie yearstart(), identificeert de functie eerst het jaar waarin de transacties plaatsvinden. Het kijkt dan een jaar eerder en identificeert de eerste milliseconde van dat jaar.
Transactie 8199 vond plaats op 23 april 2021. De functie yearstart() retourneert de eerste milliseconde van het voorgaande jaar, 1 januari 2020 om 12:00:00 AM, voor het veld ‘previous_year_start’.
Voorbeeld 3 – first_month_of_year
Overzicht
Dezelfde gegevensverzameling en het scenario uit het eerste voorbeeld worden gebruikt.
In dit voorbeeld is het bedrijfsbeleid echter dat het jaar op 1 april begint.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
id
date
year_start
year_start_timestamp
Resultatentabel
id
date
year_start
year_start_timestamp
8188
01/13/2020
04/01/2019
4/1/2019 12:00:00 AM
8189
02/26/2020
04/01/2019
4/1/2019 12:00:00 AM
8190
03/27/2020
04/01/2019
4/1/2019 12:00:00 AM
8191
04/16/2020
04/01/2020
4/1/2020 12:00:00 AM
8192
05/21/2020
04/01/2020
4/1/2020 12:00:00 AM
8193
08/14/2020
04/01/2020
4/1/2020 12:00:00 AM
8194
10/07/2020
04/01/2020
4/1/2020 12:00:00 AM
8195
12/05/2020
04/01/2020
4/1/2020 12:00:00 AM
8196
01/22/2021
04/01/2020
4/1/2020 12:00:00 AM
8197
02/03/2021
04/01/2020
4/1/2020 12:00:00 AM
8198
03/17/2021
04/01/2020
4/1/2020 12:00:00 AM
8199
04/23/2021
04/01/2021
4/1/2021 12:00:00 AM
8200
05/04/2021
04/01/2021
4/1/2021 12:00:00 AM
8201
06/30/2021
04/01/2021
4/1/2021 12:00:00 AM
8202
07/26/2021
04/01/2021
4/1/2021 12:00:00 AM
8203
12/27/2021
04/01/2021
4/1/2021 12:00:00 AM
8204
06/06/2022
04/01/2022
4/1/2022 12:00:00 AM
8205
07/18/2022
04/01/2022
4/1/2022 12:00:00 AM
8206
11/14/2022
04/01/2022
4/1/2022 12:00:00 AM
8207
12/12/2022
04/01/2022
4/1/2022 12:00:00 AM
Omdat in deze instantie het argument first_month_of_year van 4 wordt gebruikt in de functie yearstart(), stelt het de eerste dag van het jaar in op 1 april en de laatste dag van het jaar op 31 maart.
Transactie 8199 vond plaats op 23 april 2021. Omdat de functie yearstart() het begin van het jaar instelt op 1 april en dit retourneert als de waarde 'year_start' voor de transactie.
Voorbeeld 4 – diagramobjectvoorbeeld
Overzicht
Dezelfde gegevensverzameling en het scenario uit het eerste voorbeeld worden gebruikt.
In dit voorbeeld is de gegevensverzameling echter niet gewijzigd en wordt in de applicatie geladen. De berekening die een startdatumtijdstempel retourneert van het jaar waarin de transactie plaatsvond is gemaakt als meting in een diagramobject van de toepassing.
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
id
date
Maak de volgende metingen om te berekenen in welk jaar een transactie plaatsvond:
=yearstart(date)
=timestamp(yearstart(date))
Resultatentabel
id
date
=yearstart(date)
=timestamp(yearstart(date))
8188
06/06/2022
01/01/2022
1/1/2022 12:00:00 AM
8189
07/18/2022
01/01/2022
1/1/2022 12:00:00 AM
8190
11/14/2022
01/01/2022
1/1/2022 12:00:00 AM
8191
12/12/2022
01/01/2022
1/1/2022 12:00:00 AM
8192
01/22/2021
01/01/2021
1/1/2021 12:00:00 AM
8193
02/03/2021
01/01/2021
1/1/2021 12:00:00 AM
8194
03/17/2021
01/01/2021
1/1/2021 12:00:00 AM
8195
04/23/2021
01/01/2021
1/1/2021 12:00:00 AM
8196
05/04/2021
01/01/2021
1/1/2021 12:00:00 AM
8197
06/30/2021
01/01/2021
1/1/2021 12:00:00 AM
8198
07/26/2021
01/01/2021
1/1/2021 12:00:00 AM
8199
12/27/2021
01/01/2021
1/1/2021 12:00:00 AM
8200
01/13/2020
01/01/2020
1/1/2020 12:00:00 AM
8201
02/26/2020
01/01/2020
1/1/2020 12:00:00 AM
8202
03/27/2020
01/01/2020
1/1/2020 12:00:00 AM
8203
04/16/2020
01/01/2020
1/1/2020 12:00:00 AM
8204
05/21/2020
01/01/2020
1/1/2020 12:00:00 AM
8205
08/14/2020
01/01/2020
1/1/2020 12:00:00 AM
8206
10/07/2020
01/01/2020
1/1/2020 12:00:00 AM
8207
12/05/2020
01/01/2020
1/1/2020 12:00:00 AM
De meting 'start_of_year' wordt gemaakt in het diagramobject met behulp van de functie yearstart() en geeft het veld door als het argument van de functie.
De functie yearstart() identificeert aanvankelijk in welk jaar de datumwaarde valt en retourneert een tijdstempel voor de eerste milliseconde van dat jaar.
Transactie 8199 vond plaats op 23 april 2021. De functie yearstart() retourneert de eerste milliseconde van dat jaar, 1 januari om 12:00:00 AM.
Voorbeeld 5 – Scenario
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 wordt geladen in een tabel met de naam 'Loans'. De tabel bevat de volgende velden:
Lening-id's.
Het saldo aan het begin van het jaar.
De enkelvoudige rente die op elke lening per jaar wordt berekend.
De eindgebruiker wil een diagramobject dat per lening-id de huidige rente weergeeft die is opgebouwd op elke lening in het jaar tot heden.
De functie yearstart() gebruikt de datum van vandaag als enige argument en retourneert de begindatum van het huidige jaar. Door dat resultaat af te trekken van de huidige datum, retourneert de uitdrukking het aantal dagen dat in dit jaar tot nu toe is verstreken.
Deze waarde wordt vervolgens vermenigvuldigd met het rentepercentage en gedeeld door 365 om het effectieve rentepercentage voor de periode te retourneren. Het effectieve rentepercentage over de periode wordt vervolgens vermenigvuldigd met het beginsaldo van de lening om de rente terug te betalen die dit jaar tot nu toe is opgebouwd.
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!