Denna funktion returnerar en tidsmarkör som motsvarar starten av den första dagen i det år som innehåller date. Det förvalda utdataformatet blir det DateFormat som har definierats i skriptet.
Med andra ord bestämmer yearstart()-funktionen vilket år datumet infaller. Den returnerar sedan en tidsstämpel, i datumformat, för den sista millisekunden av det året. Den första månaden för året är som standard januari. Du kan dock ändra vilken månad som anges som första månaden genom att använda first_month_of_year-argumentet i yearstart()-funktionen.
Användning
yearstart()-funktionen används som en del av ett uttryck när du vill att beräkningen ska använda den del av året som hittills har förflutit. Till exempel om du vill beräkna den ränta som har ackumulerats under ett år hittills.
Returnerad datatyp: dual
Argument
Argument
Beskrivning
date
Det datum eller den tidsmarkör som ska utvärderas.
period_no
period_no är ett heltal, där värdet 0 anger det år som innehåller date. Negativa värden i period_no anger föregående år och positiva värden anger efterföljande år.
first_month_of_year
Om du vill arbeta med (budget)år som inte börjar i januari kan du ange ett värde mellan 2 och 12 i first_month_of_year.
Följande månader kan användas i first_month_of_year argument:
first_month_of_year values
Månad
Värde
Februari
2
mars
3
april
4
Maj
5
juni
6
juli
7
augusti
8
september
9
oktober
10
November
11
december
12
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 på funktioner
Exempel
Resultat
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.
Exempel 1 – Grundläggande exempel
Ö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 läses in i en tabell som heter Transactions.
Datumfältet har tillhandahållits i MM/DD/YYYY-formatet med systemvariabeln DateFormat.
En föregående LOAD-sats som innehåller följande:
yearstart()-funktion som är inställd som year_start-fält.
Timestamp()-funktion som är inställd som year_start_timestamp-fält.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
id
date
year_start
year_start_timestamp
Resultattabell
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
year_start-fältet skapades i den föregående load-satsen genom att använda yearstart()-funktionen och skicka datumfältet som funktionens argument.
yearstart()-funktionen identifierar initialt vilket år datumvärdet infaller och returnerar en tidsstämpel för den första millisekunden av det året.
Transaktion 8199 ägde rum den 23 april 2021. yearstart()-funktionen returnerar den sista millisekunden av det året, vilket är den 1 januari 12:00:00 AM.
Exampel 2 – period_no
Översikt
Samma datauppsättning och scenario som det första exemplet används.
Men i det här exemplet är uppgiften att skapa ett fält, previous_year_start, som returnerar tidsstämpel för startdatum för året innan det år då en transaktion ägde rum.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
id
date
previous_year_start
previous_ year_start_timestamp
Resultattabell
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
I det här fallet, eftersom ett period_no på -1 användes som förskjuningsargument i yearstart()-funktionen, identifierar funktionen först den månad då transaktionerna äger rum. Den tittar sedan ett år innan och identifierar den första millisekunden för det året.
Transaktion 8199 ägde rum den 23 april 2021. yearstart()-funktionen returnerar den första millisekunden av det föregående året, vilket är den 1 januari 2020 kl 12:00:00 för previous_year_start-fältet
Exempel 3 – first_month_of_year
Översikt
Samma datauppsättning och scenario som det första exemplet används.
Men i det här exemplet är företagets policy att året ska börja den 1 april.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
id
date
year_start
year_start_timestamp
Resultattabell
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
I det här fallet, eftersom first_month_of_year-argumentet för 4 används i yearstart()-funktionen, ställer det in årets första dag till 1 april och årets sista dag till 31 mars.
Transaktion 8199 ägde rum den 23 april 2021. Eftersom yearstart()-funktionen ställer in början av året till 1 april, returnerar den 31 mars 2022 som year_start-värdet för transaktionen.
Exampel 4 – Diagramobjektexempel
Översikt
Samma datauppsättning och scenario som det första exemplet används.
I det här exemplet är dock datauppsättningen oförändrad och har lästs in i programmet. Beräkningen som returnerar en tidsmarkör för startdatum för året då en transaktionen ägde rum skapas som ett mått i ett diagramobjekt för programmet.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
id
date
För att beräkna vilket år en transaktion ägde rum skapar du följande mått:
=yearstart(date)
=timestamp(yearstart(date))
Resultattabell
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
start_of_year-måttet skapades i ett diagramobjektet genom att använda yearstart()-funktionen och skicka datumfältet som funktionens argument.
yearstart()-funktionen identifierar initialt vilket år datumvärdet infaller och returnerar en tidsstämpel för den första millisekunden av det året.
Transaktion 8199 ägde rum den 23 april 2021. yearstart()-funktionen returnerar den sista millisekunden av det året, vilket är den 1 januari 12:00:00 AM.
Exempel 5 – Scenario
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
En datauppsättning läses in i en tabell som heter Loans. Tabellen innehåller följande fält:
Låne-ID:n.
Saldo i början av året.
Den enkla räntan som tas ut på varje lån per år.
Slutanvändaren vill ha ett diagramobjekt som visar, efter låne-id, den aktuella räntan som har ackumulerats för varje lån under året hittills.
Genom att använda dagens datum som enda argument returnerar yearstart()-funktionen slutdatumet för det aktuella året. Genom att subtrahera resultatet från det aktuella datumet returnerar uttrycket antalet dagar som har förflutit hittills i år.
Detta värde multipliceras sedan med räntan och divideras med 365 för att returnera den effektiva räntan för perioden. Den effektiva räntan för perioden multipliceras sedan med lånets utgångssaldo för att återbetala den upplupna räntan hittills i år.
Var den här sidan till hjälp för dig?
Om du hittar några fel på denna sida eller i innehållet – ett stavfel, ett steg som saknas eller ett tekniskt fel – berätta för oss så att vi kan blir bättre!