Gå till huvudinnehåll

inlunarweek - skript- och diagramfunktion

Med denna funktion returneras true om timestamp ligger inom den sjudagarsperiod som innehåller base_date. Sjudagarsperioder i QlikView definieras genom att 1 januari räknas som den första dagen på veckan.

Syntax:  

InLunarWeek (timestamp, base_date, period_no[, first_week_day])

Typ av returdata: Boolesk

Argument:  

InLunarWeek-argument
Argument Beskrivning
timestamp Det datum du vill jämföra mot base_date.
base_date Data som används för att utvärdera sjudagarsperioden.
period_no Sjudagarsperiodens startpunkt kan flyttas med period_no. period_no är ett heltal där värdet 0 anger den sjudagarsperiod som innehåller base_date. Negativa värden i period_no anger föregående sjudagarsperioder och positiva värden anger efterföljande sjudagarsperioder.
first_week_day En förflyttning av startpunkten som kan vara större eller mindre än noll. Detta flyttar början på året med det angivna antalet dagar och/eller delar av en dag.

Exempel 1:  

inlunarweek('12/01/2013', '14/01/2013', 0)

Returnerar True. Eftersom värdet förtimestamp, 12/01/2013 infaller under veckan 08/01/2013 till 14/01/2013.

Exempel 2:  

inlunarweek('12/01/2013', '07/01/2013', 0)

Returnerar False. Eftersom base_date 07/01/2013 är sjudagarsperioden som är definierad som 01/01/2013 till 07/01/2013.

Exempel 3:  

inlunarweek('12/01/2013', '14/01/2013', -1)

Returnerar False. Om du anger ett värde för period_no som -1 flyttas nämligen veckan till den föregående veckan, 01/01/2013 till 07/01/2013.

Exempel 4:  

inlunarweek('07/01/2013', '14/01/2013', -1)

Returnerar True. Jämfört med föregående exempel är tidsmarkören i veckan, efter att ha tagit med flytten bakåt i beräkningen.

Exempel 5:  

inlunarweek('11/01/2006', '08/01/2006', 0, 3)

Returnerar False. Eftersom att angefirst_week_day som 3 innebär att årets start beräknas från 04/01/2013, så värdet för base_date infaller i den första veckan, och värdet för timestamp infaller i veckan 11/01/2013 till 17/01/2013.

Exempel 6:  

Lägg till exempelskriptet i dokumentet och kör det. Lägg sedan till åtminstone de fält som listas i resultatkolumnen på ett ark i dokumentet för att se resultatet.

I det här exemplet undersöker vi om ett faktureringsdatum infaller inom veckan som flyttats från värdet för base_date med fyra veckor.

TempTable:

LOAD RecNo() as InvID, * Inline [

InvDate

28/03/2012

10/12/2012

5/2/2013

31/3/2013

19/5/2013

15/9/2013

11/12/2013

2/3/2014

14/5/2014

13/6/2014

7/7/2014

4/8/2014

];

 

InvoiceData:

LOAD *,

InLunarWeek(InvDate, '11/01/2013', 4) AS InLWeekPlus4

Resident TempTable;

Drop table TempTable;

Den resulterande tabellen innehåller de ursprungliga datumen och en kolumn med returvärdet för inlunarweek()-funktionen.

Funktionen returnerar True för värdet för InvDate5/2/2013 eftersom värdet för base_date, 11/01/2013, är flyttat med fyra veckor och således infaller under veckan 5/02/2013 till 11/02/2013.

Resultat för exempel 6
InvDate InLWeekPlus4
28/03/2012 0 (False)
10/12/2012 0 (False)
5/2/2013 -1 (True)
31/3/2013 0 (False)
19/5/2013 0 (False)
15/9/2013 0 (False)
11/12/2013 0 (False)
2/3/2014 0 (False)
14/5/2014 0 (False)
13/6/2014 0 (False)
7/7/2014 0 (False)
4/8/2014 0 (False)

Var den här sidan till hjälp för dig?

Om du stöter på några problem med den här sidan eller innehållet på den, t.ex. ett stavfel, ett saknat steg eller ett tekniskt fel – meddela oss!

Gå med i programmet Analytics Modernization

Remove banner from view

Modernisera utan att kompromissa med dina värdefulla QlikView-appar med programmet för analysmodernisering. Klicka här för mer information eller ta kontakt: ampquestions@qlik.com