addyears - skript- och diagramfunktion
Denna funktion returnerar det datum som infaller n år efter startdate eller, om n är negativt, det datum som infallern år före startdate.
Syntax:
AddYears(startdate, n)
Returnerad datatyp: dual
addyears()-funktionen lägger till eller drar av ett definierat antal år, n, från ett startdate. Därefter returneras det resulterande datumet.
Argument | Beskrivning |
---|---|
startdate |
Startdatumet som en tidsmarkör, exempelvis '2012-10-12'. |
n | Antal år som ett positivt eller negativt heltal. |
Exempel | Resultat |
---|---|
addyears ('01/29/2010',3) | Returnerar 01/29/2013. |
addyears ('01/29/2010',-1) | Returnerar 01/29/2009. |
Lokala inställningar
Om inget annat anges använder exemplen i detta ämne följande datumformat: MM/DD/ÅÅÅÅ. Datumformatet anges i SET DateFormat-satsen i datainläsningsskriptet. Förvald datumformatering kan vara annorlunda i ditt system, på grund av dina regionala inställningar och andra faktorer. Du kan ändra formaten i exemplen nedan så att det passar dina krav. Eller så kan du ändra formaten i ditt laddningsskript så att de matchar dessa exempel.
Standardregionalinställningar i appar baseras på de regionala systeminställningarna för datorn eller servern där Qlik Sense är installerad. Om Qlik Sense-servern du ansluter till är inställd på Sverige så kommer skriptredigeraren använda regionala inställningar för Sverige för datum, tid och valuta. Dessa regionala formatinställningar är inte relaterade till språket som visas i Qlik Sense användargränssnittet. Qlik Sense kommer att visas på samma språk som webbläsaren du använder.
Exempel 1 – enkelt exempel
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
-
En datauppsättning som innehåller en uppsättning transaktioner mellan 2020 och 2022 som laddas i en tabell som heter Transactions.
-
Datumfältet tillhandahålls i formatet (ÅÅÅÅ-MM-DD) i systemvariabeln DateFormat.
-
Ett fält two_years_later skapas som returnerar datumet två år efter att transaktionen ägde rum.
Laddningsskript
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
];
Resultat
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
-
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 |
two_years_later-fältet skapas i föregående load-sats med hjälp av funktionen addyears(). Det första argumentet som anges identifierar vilket datum som utvärderas. Det andra argumentet är antalet år som ska läggas till eller dras av från startdatumet. I det här fallet anges värdet 2.
Transaktion 8193 ägde rum 14 augusti 2020. Därför returnerar addyears()-funktionen 14 augusti 2022 för two_years_later-fältet.
Exempel 2 – Diagramobjektexempel
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
-
En datauppsättning som innehåller transaktioner mellan år 2020 och 2022 som laddas i en tabell som heter Transactions.
-
Datumfältet tillhandahålls i formatet (ÅÅÅÅ-MM-DD) i systemvariabeln DateFormat.
Skapa ett mått prior_year_date i diagramobjektet som returnerar datumet ett år före transaktionen äger rum.
Laddningsskript
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
];
Resultat
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till det här fältet som en dimension: date.
Skapa följande mått för att beräkna datumet ett år före varje transation:
=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 |
one_year_prior-måttet skapas i ett diagramobjekt med hjälp av addyears()-funktionen. Det första argumentet som anges identifierar vilket datum som utvärderas. Det andra argumentet är antalet år som ska läggas till eller dras av från startdate. I det här fallet anges värdet -1.
Transaktion 8193 ägde rum 14 augusti. Därför returnerar addyears()-funktionen 14 augusti 2019 för one_year_prior-fältet.
Exempel 3 – Scenario
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
-
En datauppsättning laddas i en tabell som heter Warranties.
-
Information med produkt-ID, inköpsdatum, garantilängd och inköpspriset.
Slutanvändaren vill ha ett diagramobjekt som visar garantins slutdatum för varje produkt, sorterat på produkt-ID.
Laddningsskript
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
];
Resultat
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
-
product_id
-
purchase_date
-
warranty_length
Skapa följande mått för att beräkna slutdatumet för varje produkts garanti:
=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 |