Gå till huvudinnehåll

inyear - skript- och diagramfunktion

Denna funktion returnerar True om timestamp ligger inom det år som innehåller base_date.

Syntax:  

InYear (timestamp, base_date, period_no [, first_month_of_year])

Typ av returdata: Boolesk

Argument:  

InYear-argument
Argument Beskrivning
timestamp Det datum du vill jämföra mot base_date.
base_date Datum som används för att utvärdera året.
period_no Årets startpunkt kan flyttas med period_no. period_no är ett heltal där värdet 0 anger året som innehåller base_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.

Exempel och resultat:  

I de här exemplen används datumformatet DD/MM/YYYY. Datumformatet anges i SET DateFormat-satsen längst upp i laddningsskriptet. Ändra formatet i exemplen så att det passar dina krav.

Exempel 1:  

inyear ('25/01/2013', '01/01/2013', 0 )

Returnerar True

Exempel 2:  

inyear ('25/01/2012', '01/01/2013', 0)

Returnerar False

Exempel 3:  

inyear ('25/01/2013', '01/01/2013', -1)

Returnerar False

Exempel 4:  

inyear ('25/01/2012', '01/01/2013', -1 )

Returnerar True

Exempel 5:  

inyear ('25/01/2013', '01/01/2013', 0, 3)

Returnerar True

Exempel 6:  

inyear ('25/03/2013', '01/07/2013', 0, 3 )

Returnerar False. Värdena för base_date och first_month_of_year anger att timestamp måste infalla inom 01/03/2012 och 28/02/2013.

Exempel 7:  

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 kontrollerar vi om ett faktureringsdatum infaller under budgetåret genom att ange värdet förfirst_month_of_year som 4, och ha base_date mellan 1/4/2012 och 31/03/2013.

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

];

 

Testa om InvDate är inom budgetåret 1/04/2012 till 31/03/2013:

InvoiceData:

LOAD *,

InYear(InvDate, '31/01/2013', 0, 4) AS FinYr1213

Resident TempTable;

Drop table TempTable;

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

Resultat för exempel 7
InvDate FinYr1213
28/03/2012 0 (False)
10/12/2012 -1 (True)
5/2/2013 -1 (True)
31/3/2013 -1 (True)
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