Ett namn på en dag som definierat i miljövariabeln DayNames.
Ett heltal mellan 0 och 6 som motsvarar den nominella veckodagen (0-6).
Syntax:
weekday(date [,first_week_day=0])
Returnerad datatyp: dual
weekday()-funktionen avgör vilken veckodag ett datum inträffar. Det returnerar sedan ett strängvräde som representerar den dagen.
Resultatet returnerar nummervärdet som motsvarar den veckodagen (0–6), baserat på veckans första dag. Om den första dagen i veckan har satts till söndag returnerar en onsdag nummervärdet 3. Den här startdagen bestäms antingen av systemvariabeln FirstWeekDay eller av funktionsparametern first_week_day.
Du kan använda det här nummervärdet som en del av ett aritmetiskt uttryck. Multiplicera det med exempelvis 1 för att returnera själva värdet.
Användning
Funktionen weekday() är användbar när du vill jämföra sammanställningar efter veckodagar. Om du exempelvis vill jämföra genomsnittlig försäljning av produkter efter veckodag.
Dessa dimensioner kan skapas i laddningsskriptet genom att använda funktionen för att skapa ett fält i en Master Calendar-tabell, eller skapas direkt i ett diagram som ett beräknat mått.
Du kan använda följande värden för att ställa in vilken dag veckan börjar i argumentet first_week_day:
first_week_day values
Dag
Värde
Måndag
0
Tisdag
1
Onsdag
2
Torsdag
3
Fredag
4
Lördag
5
Söndag
6
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.
Anteckning om informationOm inget annat sägs,är FirstWeekDay inställd till 0 i dessa exempel.
Exempel på funktioner
Exempel
Resultat
weekday('10/12/1971')
Returnerar ' Tue' och 1.
weekday('10/12/1971' , 6)
Returnerar 'Tue' och 2.
I det här exemplet är söndag (6) den första dagen i veckan.
SET FirstWeekDay=6;
...
weekday('10/12/1971')
Returnerar 'Tue' och 2.
Exempel 1 – veckodagssträng
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
En datauppsättning som innehåller transaktioner för 2022 som läses in i en tabell som heter Transactions.
Systemvariabeln FirstWeekDay som är inställd till 6 (söndag).
DayNames-variabeln som är inställd till att använda standardnamnen för dagar.
En föregående laddning som innehåller weekday()-funktionen, som är satt till week_day-fältet och returnerar den veckodag då transaktionen ägde rum.
Laddningsskript
SET DateFormat='MM/DD/YYYY';
SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun';
SET FirstWeekDay=6;
Transactions:
Load
*,
WeekDay(date) as week_day
;
Load
*
Inline
[
id,date,amount
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.39
];
Resultat
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
id
date
week_day
Resultattabell
id
date
week_day
8188
01/01/2022
lör
8189
01/02/2022
sön
8190
01/03/2022
mån
8191
01/04/2022
tis
8192
01/05/2022
ons
8193
01/06/2022
tors
8194
01/07/2022
fre
week_day-fältet skapades i den föregående load-satsen genom att använda weekday()-funktionen och skicka datumfältet som funktionens argument.
weekday()-funktionen returnerar veckodagens strängvärde, det vill säga, returnerar namnet på veckodagen som ställs in med systemvariabeln DayNames.
Transaktion 8192 ägde rum 5 januari. Systemvariabeln FirstWeekDay sätter söndag som första dag i veckan. Funktionstransaktionen weekday() ägde rum på en onsdag och returnerar detta värde, i den förkortade formen från systemvariabeln DayNames i week_day-fältet.
Värdena i week_day-fältet är högerjusterade i kolumnen eftersom det finns ett dualt tal och textresultat för fältet (onsdagen den 3:e). För att konvertera fältvärdet till dess numeriska motsvarighet kan fältet inneslutas i num()-funktionen. I transaktion 8192 exempelvis skulle onsdagsvärdet konverteras till talet 3.
Exempel 2 – first_week_day
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
En datauppsättning som innehåller transaktioner för 2022 som läses in i en tabell som heter Transactions.
Systemvariabeln FirstWeekDay som är inställd till 6 (söndag).
DayNames-variabeln som är inställd till att använda standardnamnen för dagar.
En föregående laddning som innehåller weekday()-funktionen, som är satt till week_day-fältet och returnerar den veckodag då transaktionen ägde rum.
Laddningsskript
SET DateFormat='MM/DD/YYYY';
SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun';
SET FirstWeekDay=6;
Transactions:
Load
*,
WeekDay(date,1) as week_day
;
Load
*
Inline
[
id,date,amount
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.39
];
Resultat
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
id
date
week_day
Resultattabell
id
date
week_day
8188
01/01/2022
lör
8189
01/02/2022
sön
8190
01/03/2022
mån
8191
01/04/2022
tis
8192
01/05/2022
ons
8193
01/06/2022
tors
8194
01/07/2022
fre
Eftersom first_week_day-argumentet är satt till 1 i weekday()-funktionen är tisdag den första dagen i veckan. Därför kommer alla transaktioner som äger rum på en tisdag ha ett dualt numeriskt värde på 0.
Transaktion 8192 ägde rum 5 januari. weekday()-funktionen identifierar att detta är en onsdag, och uttrycket skulle alltså returnera det duala numeriska värdet 1.
Exampel 3 – Diagramobjektexempel
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
En datauppsättning som innehåller transaktioner för 2022 som läses in i en tabell som heter Transactions.
Systemvariabeln FirstWeekDay som är inställd till 6 (söndag).
DayNames-variabeln som är inställd till att använda standardnamnen för dagar.
I det här exemplet är dock datauppsättningen oförändrad och har lästs in i programmet. Beräkningen som identifierar veckodagsvärdet skapas som ett mått i ett diagram i appen.
Laddningsskript
SET DateFormat='MM/DD/YYYY';
SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun';
SET FirstWeekDay=6;
Transactions:
Load
*
Inline
[
id,date,amount
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.39
];
Resultat
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 veckodagsvärdet skapar du följande mått:
=weekday(date)
Resultattabell
id
date
=weekday(date)
8188
01/01/2022
lör
8189
01/02/2022
sön
8190
01/03/2022
mån
8191
01/04/2022
tis
8192
01/05/2022
ons
8193
01/06/2022
tors
8194
01/07/2022
fre
=weekday(date)-fältet skapades i diagrammet genom att använda weekday()-funktionen och skicka datumfältet som funktionens argument.
weekday()-funktionen returnerar veckodagens strängvärde, det vill säga, returnerar namnet på veckodagen som ställs in med systemvariabeln DayNames.
Transaktion 8192 ägde rum 5 januari. Systemvariabeln FirstWeekDay sätter söndag som första dag i veckan. Funktionstransaktionen weekday() ägde rum på en onsdag och returnerar detta värde, i den förkortade formen från systemvariabeln DayNames i =weekday(date)-fältet.
Exempel 4 – scenario
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
En datauppsättning som innehåller transaktioner för 2022 som läses in i en tabell som heter Transactions.
Systemvariabeln FirstWeekDay som är inställd till 6 (söndag).
DayNames-variabeln som är inställd till att använda standardnamnen för dagar.
Slutanvändaren vill ha ett diagram som visar den genomsnittliga försäljningen per veckodag för transaktionerna.
Laddningsskript
SET DateFormat='MM/DD/YYYY';
SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun';
SET FirstWeekDay=6;
Transactions:
LOAD
RecNo() AS id,
MakeDate(2022, 1, Ceil(Rand() * 31)) as date,
Rand() * 1000 AS amount
Autogenerate(1000);
Resultat
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
=weekday(date)
=avg(amount)
Ange måttens Nummerformatering till Pengar.
Resultattabell
weekday(date)
Avg(amount)
sön
$536.96
mån
$500.80
tis
$515.63
ons
$509.21
tors
$482.70
fre
$441.33
lör
$505.22
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!