addyears - script- en diagramfunctie
Deze functie retourneert de datum n jaar na startdate of, als n negatief is, de datum n jaar vóór startdate.
Syntaxis:
AddYears(startdate, n)
Retourgegevenstypen: dual
De addyears()-functie voegt een gedefinieerd aantal jaar, n, toe aan of trekt dit aantal af van een startdate. Vervolgens wordt de resulterende datum geretourneerd.
Argument | Beschrijving |
---|---|
startdate |
De startdatum als tijdstempel, bijvoorbeeld '2012-10-12'. |
n | Aantal jaren als een positief of negatief geheel getal. |
Voorbeeld | Resultaat |
---|---|
addyears ('01/29/2010',3) | Retourneert '01/29/2013'. |
addyears ('01/29/2010',-1) | Retourneert '01/29/2009'. |
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 – Eenvoudig voorbeeld
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 set transacties tussen 2020 en 2022 die wordt geladen in een tabel met de naam Transactions.
-
Het datumveld opgegeven in de DateFormat-systeemvariabele (MM/DD/YYYY) indeling.
-
Er wordt een veld gemaakt, two_years_later, dat de datum retourneert voor twee jaar nadat de transactie plaatsvond.
Load-script
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*,
addyears(date,2) as two_years_later
;
Load
*
Inline
[
id,date,amount
8188,'01/10/2020',37.23
8189,'02/28/2020',17.17
8190,'04/09/2020',88.27
8191,'04/16/2020',57.42
8192,'05/21/2020',53.80
8193,'08/14/2020',82.06
8194,'10/07/2020',40.39
8195,'12/05/2020',87.21
8196,'01/22/2021',95.93
8197,'02/03/2021',45.89
8198,'03/17/2021',36.23
8199,'04/23/2021',25.66
8200,'05/04/2021',82.77
8201,'06/30/2021',69.98
8202,'07/26/2021',76.11
8203,'12/27/2021',25.12
8204,'02/02/2022',46.23
8205,'02/26/2022',84.21
8206,'03/07/2022',96.24
8207,'03/11/2022',67.67
];
Resultaten
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
-
date
-
two_years_later
date | two_years_later |
---|---|
01/10/2020 | 01/10/2022 |
02/28/2020 | 02/28/2022 |
04/09/2020 | 04/09/2022 |
04/16/2020 | 04/16/2022 |
05/21/2020 | 05/21/2022 |
08/14/2020 | 08/14/2022 |
10/07/2020 | 10/07/2022 |
12/05/2020 | 12/05/2022 |
01/22/2021 | 01/22/2023 |
02/03/2021 | 02/03/2023 |
03/17/2021 | 03/17/2023 |
04/23/2021 | 04/23/2023 |
05/04/2021 | 05/04/2023 |
06/30/2021 | 06/30/2023 |
07/26/2021 | 07/26/2023 |
12/27/2021 | 12/27/2023 |
02/02/2022 | 02/02/2024 |
02/26/2022 | 02/26/2024 |
03/07/2022 | 03/07/2024 |
03/11/2022 | 03/11/2024 |
Het veld two_years_later wordt gemaakt in de vorige load-instructie met behulp van de functie addyears(). Het eerste opgegeven argument geeft aan welke datum wordt geëvalueerd. Het tweede argument is het aantal jaar dat moet worden opgeteld bij of afgetrokken van de begindatum. In dit geval is de waarde 2 opgegeven.
Transactie 8193 vond plaats op 14 augustus 2020. Daarom retourneert de addyears()-functie 14 augustus 2022 voor het veld two_years_later.
Voorbeeld 2 – 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 set transacties tussen 2020 en 2022 die wordt geladen in een tabel met de naam Transactions.
-
Het datumveld opgegeven in de DateFormat-systeemvariabele (MM/DD/YYYY) indeling.
Maak in een diagramobject een meting aan, prior_year_date, die de datum retourneert die één jaar eerder ligt dan de datum waarop de transactie heeft plaatsgevonden.
Load-script
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
*
Inline
[
id,date,amount
8188,'01/10/2020',37.23
8189,'02/28/2020',17.17
8190,'04/09/2020',88.27
8191,'04/16/2020',57.42
8192,'05/21/2020',53.80
8193,'08/14/2020',82.06
8194,'10/07/2020',40.39
8195,'12/05/2020',87.21
8196,'01/22/2021',95.93
8197,'02/03/2021',45.89
8198,'03/17/2021',36.23
8199,'04/23/2021',25.66
8200,'05/04/2021',82.77
8201,'06/30/2021',69.98
8202,'07/26/2021',76.11
8203,'12/27/2021',25.12
8204,'02/02/2022',46.23
8205,'02/26/2022',84.21
8206,'03/07/2022',96.24
8207,'03/11/2022',67.67
];
Resultaten
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg dit veld toe als dimensie: date.
Maak de volgende meting aan om de datum te berekenen die één jaar eerder ligt per transactie:
=addyears(date,-1)
date | =addyears(date,-1) |
---|---|
01/10/2020 | 01/10/2019 |
02/28/2020 | 02/28/2019 |
04/09/2020 | 04/09/2019 |
04/16/2020 | 04/16/2019 |
05/21/2020 | 05/21/2019 |
08/14/2020 | 08/14/2019 |
10/07/2020 | 10/07/2019 |
12/05/2020 | 12/05/2019 |
01/22/2021 | 01/22/2020 |
02/03/2021 | 02/03/2020 |
03/17/2021 | 03/17/2020 |
04/23/2021 | 04/23/2020 |
05/04/2021 | 05/04/2020 |
06/30/2021 | 06/30/2020 |
07/26/2021 | 07/26/2020 |
12/27/2021 | 12/27/2020 |
02/02/2022 | 02/02/2021 |
02/26/2022 | 02/26/2021 |
03/07/2022 | 03/07/2021 |
03/11/2022 | 03/11/2021 |
De meting one_year_prior wordt in het diagramobject gemaakt met behulp van de functie addyears(). Het eerste opgegeven argument geeft aan welke datum wordt geëvalueerd. Het tweede argument is het aantal jaar dat moet worden opgeteld bij of afgetrokken van de startdate. In dit geval is de waarde -1 opgegeven.
Transactie 8193 vond plaats op 14 augustus. Daarom retourneert de addyears()-functie 14 augustus 2019 voor het veld one_year_prior.
Voorbeeld 3 – 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 die wordt geladen in een tabel met de naam Warranties.
-
Informatie met de product-id, aankoopdatum, garantieduur en aankoopprijs.
De eindgebruiker wil graag een diagramobject dat de einddatum van de garantieperiode van elk product op product-id weergeeft.
Load-script
Warranties:
Load
*
Inline
[
product_id,purchase_date,warranty_length,purchase_price
8188,'01/13/2020',4,32000
8189,'02/26/2020',2,28000
8190,'03/27/2020',3,41000
8191,'04/16/2020',4,17000
8192,'05/21/2020',2,25000
8193,'08/14/2020',1,59000
8194,'10/07/2020',2,12000
8195,'12/05/2020',3,12000
8196,'01/22/2021',4,24000
8197,'02/03/2021',1,50000
8198,'03/17/2021',2,80000
8199,'04/23/2021',3,10000
8200,'05/04/2021',4,30000
8201,'06/30/2021',3,30000
8202,'07/26/2021',4,20000
8203,'12/27/2021',4,10000
8204,'06/06/2022',2,25000
8205,'07/18/2022',1,32000
8206,'11/14/2022',1,30000
8207,'12/12/2022',4,22000
];
Resultaten
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
-
product_id
-
purchase_date
-
warranty_length
Maak de volgende meting aan om de einddatum van de garantie per product te berekenen:
=addyears(purchase_date,warranty_length)
product_id | purchase_date | warranty_length | =addyears(purchase_date,warranty_length) |
---|---|---|---|
8188 | 01/13/2020 | 4 | 01/13/2024 |
8189 | 02/26/2020 | 2 | 02/26/2022 |
8190 | 03/27/2020 | 3 | 03/27/2023 |
8191 | 04/16/2020 | 4 | 04/16/2024 |
8192 | 05/21/2020 | 2 | 05/21/2022 |
8193 | 08/14/2020 | 1 | 08/14/2021 |
8194 | 10/07/2020 | 2 | 10/07/2022 |
8195 | 12/05/2020 | 3 | 12/05/2023 |
8196 | 01/22/2021 | 4 | 01/22/2025 |
8197 | 02/03/2021 | 1 | 02/03/2022 |
8198 | 03/17/2021 | 2 | 03/17/2023 |
8199 | 04/23/2021 | 3 | 04/23/2024 |
8200 | 05/04/2021 | 4 | 05/04/2025 |
8201 | 06/30/2021 | 3 | 06/30/2024 |
8202 | 07/26/2021 | 4 | 07/26/2025 |
8203 | 12/27/2021 | 4 | 12/27/2025 |
8204 | 06/06/2022 | 2 | 06/06/2024 |
8205 | 07/18/2022 | 1 | 07/18/2023 |
8206 | 11/14/2022 | 1 | 11/14/2023 |
8207 | 12/12/2022 | 4 | 12/12/2026 |