Questa funzione restituisce un valore corrispondente a un indicatore temporale recante il primo millisecondo del primo giorno della settimana di calendario contenente date. Il formato di output predefinito è il formato DateFormat impostato nello script.
In altre parole, la funzione weekstart() determina in quale settimana cade la data. Quindi, restituisce un timestamp, nel formato data, per il primo millisecondo di quella settimana. Il primo giorno della settimana è determinato dalla variabile ambientale FirstWeekDay. Tuttavia, questo può essere sostituito dall'argomento first_week_day della funzione weekstart().
Argomenti
Argomento
Descrizione
timestamp
La data o la data e ora da valutare.
period_no
shift è un numero intero, in cui il valore 0 indica la settimana che contiene date. I valori negativi di shift indicano le settimane precedenti, mentre i valori positivi indicano le settimane successive.
first_week_day
Specifica il giorno di inizio della settimana. Se omesso, viene utilizzato il valore della variabile FirstWeekDay.
I valori possibili per first_week_day sono 0 per lunedì, 1 per martedì, 2 per mercoledì, 3 per giovedì, 4 per venerdì, 5 per sabato e 6 per domenica.
Per maggiori informazioni sulle variabili di sistema, vedere FirstWeekDay.
Casi di utilizzo
La funzione weekstart() viene comunemente utilizzata come parte di un'espressione quando l'utente desidera che il calcolo utilizzi la frazione della settimana trascorsa finora. Ad esempio, potrebbe essere utilizzato se un utente desidera calcolare il totale dei salari guadagnati dai dipendenti nella settimana in corso.
Gli esempi seguenti presuppongono:
SET FirstWeekDay=0;
Esempi di funzioni
Esempio
Risultato
weekstart('01/12/2013')
Restituisce 01/07/2013.
weekstart('01/12/2013', -1 )
Restituisce 11/31/2012.
weekstart('01/12/2013', 0, 1)
Restituisce 01/08/2013.
Impostazioni locali
Se non diversamente specificato, gli esempi di questo argomento utilizzano il seguente formato di data: MM/GG/AAAA. Il formato della data viene specificato nell'istruzione SET DateFormat nello script di caricamento dei dati. La formattazione predefinita della data potrebbe essere diversa nel proprio sistema, a causa delle impostazioni regionali e di altri fattori. È possibile modificare i formati degli esempi seguenti in base alle proprie esigenze. In alternativa, è possibile modificare i formati nel proprio script di caricamento per adattarli a questi esempi. Per ulteriori informazioni, vedere Modifica delle impostazioni internazionali per la creazione di app e script.
Le impostazioni regionali predefinite nelle app si basano sul profilo utente. Queste impostazioni di formato regionale non riguardano la lingua visualizzata nell'interfaccia utente Qlik Cloud. Qlik Cloud verrà visualizzato nella stessa lingua del browser utilizzato.
Se si desiderano le impostazioni ISO per le settimane e i numeri di settimana, assicurarsi di inserire nello script quanto segue:
Set DateFormat ='YYYY-MM-DD';
Set FirstWeekDay =0; // Monday as first week day
Set BrokenWeeks =0; //(use unbroken weeks)
Set ReferenceDay =4; // Jan 4th is always in week 1
Se si desiderano le impostazioni USA, assicurarsi che nello script sia presente quanto segue:
Set DateFormat ='M/D/YYYY';
Set FirstWeekDay =6; // Sunday as first week day
Set BrokenWeeks =1; //(use broken weeks)
Set ReferenceDay =1; // Jan 1st is always in week 1
Gli esempi sopra riportati danno come risultato quanto segue dalla funzione weekstart():
Esempio di funzione Weekstart
Data
Inizio settimana ISO
Inizio settimana US
Sab 26 dic 2020
2020-12-21
12/20/2020
Dom 27 dic 2020
2020-12-21
12/27/2020
Lun 28 dic 2020
2020-12-28
12/27/2020
Mar 29 dic 2020
2020-12-28
12/27/2020
Mer 30 dic 2020
2020-12-28
12/27/2020
Gio 31 dic 2020
2020-12-28
12/27/2020
Ven 1° gen 2021
2020-12-28
12/27/2020
Sab 2 gen 2021
2020-12-28
12/27/2020
Dom 3 gen 2021
2020-12-28
1/3/2021
Lun 4 gen 2021
2021-01-04
1/3/2021
Mar 5 gen 2021
2021-01-04
1/3/2021
Nota informaticaLe settimane iniziano il lunedì nella colonna ISO e la domenica nella colonna USA.
Esempio 1 – Nessun argomento aggiuntivo
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
Un set di dati contenente un insieme di transazioni per il 2022, caricato in una tabella denominata 'Transactions'.
Il campo della data fornito nel formato della variabile di sistema DateFormat (MM/GG/AAAA).
La creazione di un campo, start_of_week, che restituisce un timestamp per l'inizio della settimana in cui sono avvenute le transazioni.
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
date
start_of_week
start_of_week_timestamp
Tabella dei risultati
date
start_of_week
start_of_week_timestamp
1/7/2022
01/02/2022
1/2/2022 12:00:00 AM
1/19/2022
01/16/2022
1/16/2022 12:00:00 AM
2/5/2022
01/30/2022
1/30/2022 12:00:00 AM
2/28/2022
02/27/2022
2/27/2022 12:00:00 AM
3/16/2022
03/13/2022
3/13/2022 12:00:00 AM
4/1/2022
03/27/2022
3/27/2022 12:00:00 AM
5/7/2022
05/01/2022
5/1/2022 12:00:00 AM
5/16/2022
05/15/2022
5/15/2022 12:00:00 AM
6/15/2022
06/12/2022
6/12/2022 12:00:00 AM
6/26/2022
06/26/2022
6/26/2022 12:00:00 AM
7/9/2022
07/03/2022
7/3/2022 12:00:00 AM
7/22/2022
07/17/2022
7/17/2022 12:00:00 AM
7/23/2022
07/17/2022
7/17/2022 12:00:00 AM
7/27/2022
07/24/2022
7/24/2022 12:00:00 AM
8/2/2022
07/31/2022
7/31/2022 12:00:00 AM
8/8/2022
08/07/2022
8/7/2022 12:00:00 AM
8/19/2022
08/14/2022
8/14/2022 12:00:00 AM
9/26/2022
09/25/2022
9/25/2022 12:00:00 AM
10/14/2022
10/09/2022
10/9/2022 12:00:00 AM
10/29/2022
10/23/2022
10/23/2022 12:00:00 AM
Il campo 'start_of_week' viene creato nell'istruzione di caricamento precedente mediante l'uso della funzione weekstart() e trasferendo il campo data come argomento della funzione.
La funzione weekstart() identifica inizialmente in quale settimana cade il valore della data, restituendo un timestamp per il primo millisecondo di quella settimana.
La transazione 8191 è avvenuta il 5 febbraio. La variabile di sistema FirstWeekDay imposta il primo giorno della settimana come domenica. La funzione weekstart() identifica che la prima domenica prima del 5 febbraio - e quindi l'inizio della settimana - è stata il 30 gennaio, Pertanto, il valore start_of_week per questa transazione restituisce il primo millisecondo di quel giorno, che è il 30 gennaio alle 12:00:00 AM.
Esempio 2 – period_no
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
Vengono utilizzati lo stesso set di dati e lo stesso scenario del primo esempio.
La creazione di un campo, previous_week_start, che restituisce il timestamp per l'inizio del trimestre prima che fosse effettuata la transazione.
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
date
previous_week_start
previous_week_start_timestamp
Tabella dei risultati
date
previous_week_start
previous_week_start_timestamp
1/7/2022
12/26/2021
12/26/2021 12:00:00 AM
1/19/2022
01/09/2022
1/9/2022 12:00:00 AM
2/5/2022
01/23/2022
1/23/2022 12:00:00 AM
2/28/2022
02/20/2022
2/20/2022 12:00:00 AM
3/16/2022
03/06/2022
3/6/2022 12:00:00 AM
4/1/2022
03/20/2022
3/20/2022 12:00:00 AM
5/7/2022
04/24/2022
4/24/2022 12:00:00 AM
5/16/2022
05/08/2022
5/8/2022 12:00:00 AM
6/15/2022
06/05/2022
6/5/2022 12:00:00 AM
6/26/2022
06/19/2022
6/19/2022 12:00:00 AM
7/9/2022
06/26/2022
6/26/2022 12:00:00 AM
7/22/2022
07/10/2022
7/10/2022 12:00:00 AM
7/23/2022
07/10/2022
7/10/2022 12:00:00 AM
7/27/2022
07/17/2022
7/17/2022 12:00:00 AM
8/2/2022
07/24/2022
7/24/2022 12:00:00 AM
8/8/2022
07/31/2022
7/31/2022 12:00:00 AM
8/19/2022
08/07/2022
8/7/2022 12:00:00 AM
9/26/2022
09/18/2022
9/18/2022 12:00:00 AM
10/14/2022
10/02/2022
10/2/2022 12:00:00 AM
10/29/2022
10/16/2022
10/16/2022 12:00:00 AM
In questo caso, poiché il valore period_no di -1 è stato utilizzato come argomento offset nella funzione weekstart(), la funzione per prima cosa identifica la settimana in cui avvengono le transazioni. Quindi, cerca la settimana precedente e identifica il primo millisecondo di quella settimana.
La transazione 8196 è avvenuta il 15 giugno. La funzione weekstart() identifica che la settimana è iniziata il 12 giugno. Pertanto, la settimana precedente è iniziata il 5 giugno alle 12:00:00; questo è il valore che viene restituito per il campo previous_week_start.
Esempio 3 – first_week_day
Panoramica
Aprire l'Editor di caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento utilizza lo stesso set di dati e lo stesso scenario del primo esempio. Tuttavia, in questo esempio, dobbiamo impostare il martedì come primo giorno della settimana lavorativa.
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
date
start_of_week
start_of_week_timestamp
Tabella dei risultati
date
start_of_week
start_of_week_timestamp
1/7/2022
01/04/2022
1/4/2022 12:00:00 AM
1/19/2022
01/18/2022
1/18/2022 12:00:00 AM
2/5/2022
02/01/2022
2/1/2022 12:00:00 AM
2/28/2022
02/22/2022
2/22/2022 12:00:00 AM
3/16/2022
03/15/2022
3/15/2022 12:00:00 AM
4/1/2022
03/29/2022
3/29/2022 12:00:00 AM
5/7/2022
05/03/2022
5/3/2022 12:00:00 AM
5/16/2022
05/10/2022
5/10/2022 12:00:00 AM
6/15/2022
06/14/2022
6/14/2022 12:00:00 AM
6/26/2022
06/21/2022
6/21/2022 12:00:00 AM
7/9/2022
07/05/2022
7/5/2022 12:00:00 AM
7/22/2022
07/19/2022
7/19/2022 12:00:00 AM
7/23/2022
07/19/2022
7/19/2022 12:00:00 AM
7/27/2022
07/26/2022
7/26/2022 12:00:00 AM
8/2/2022
08/02/2022
8/2/2022 12:00:00 AM
8/8/2022
08/02/2022
8/2/2022 12:00:00 AM
8/19/2022
08/16/2022
8/16/2022 12:00:00 AM
9/26/2022
09/20/2022
9/20/2022 12:00:00 AM
10/14/2022
10/11/2022
10/11/2022 12:00:00 AM
10/29/2022
10/25/2022
10/25/2022 12:00:00 AM
In questa istanza, dato che l'argomento first_week_date di 1 è utilizzato nella funzione weekstart(), imposta il primo giorno della settimana a martedì.
La transazione 8191 è avvenuta il 5 febbraio. La funzione weekstart() identifica che il primo martedì precedente a questa data - e quindi l'inizio della settimana e il valore restituito - è stato il 1° febbraio alle 12:00:00.
Esempio 4 – Esempio di oggetto grafico
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene lo stesso set di dati e lo stesso scenario del primo esempio.
Tuttavia, in questo esempio, il set di dati invariato viene caricato nell'applicazione. Il calcolo che restituisce un timestamp per l'inizio della settimana in cui sono avvenute le transazioni viene creato come misura in un oggetto grafico dell'applicazione.
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione: date.
Per calcolare l'inizio della settimana in cui avviene una transazione, sommare le seguenti misure:
=weekstart(date)
=timestamp(weekstart(date))
Tabella dei risultati
date
start_of_week
start_of_week_timestamp
1/7/2022
01/02/2022
1/2/2022 12:00:00 AM
1/19/2022
01/16/2022
1/16/2022 12:00:00 AM
2/5/2022
01/30/2022
1/30/2022 12:00:00 AM
2/28/2022
02/27/2022
2/27/2022 12:00:00 AM
3/16/2022
03/13/2022
3/13/2022 12:00:00 AM
4/1/2022
03/27/2022
3/27/2022 12:00:00 AM
5/7/2022
05/01/2022
5/1/2022 12:00:00 AM
5/16/2022
05/15/2022
5/15/2022 12:00:00 AM
6/15/2022
06/12/2022
6/12/2022 12:00:00 AM
6/26/2022
06/26/2022
6/26/2022 12:00:00 AM
7/9/2022
07/03/2022
7/3/2022 12:00:00 AM
7/22/2022
07/17/2022
7/17/2022 12:00:00 AM
7/23/2022
07/17/2022
7/17/2022 12:00:00 AM
7/27/2022
07/24/2022
7/24/2022 12:00:00 AM
8/2/2022
07/31/2022
7/31/2022 12:00:00 AM
8/8/2022
08/07/2022
8/7/2022 12:00:00 AM
8/19/2022
08/14/2022
8/14/2022 12:00:00 AM
9/26/2022
09/25/2022
9/25/2022 12:00:00 AM
10/14/2022
10/09/2022
10/9/2022 12:00:00 AM
10/29/2022
10/23/2022
10/23/2022 12:00:00 AM
La misura start_of_week viene creata nell'oggetto grafico mediante l'utilizzo della funzione weekstart() e trasferendo il campo date come argomento della funzione.
La funzione weekstart() identifica inizialmente in quale settimana cade il valore della data, restituendo un timestamp per il primo millisecondo di quella settimana.
La transazione 8191 è avvenuta il 5 febbraio. La variabile di sistema FirstWeekDay imposta il primo giorno della settimana come domenica. La funzione weekstart() identifica che la prima domenica prima del 5 febbraio - e quindi l'inizio della settimana - era il 30 gennaio. Pertanto, il valore start_of_week per questa transazione restituisce il primo millisecondo di quel giorno, ovvero il 30 gennaio alle 12:00:00.
Esempio 5 – Scenario
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
Un set di dati che viene caricato in una tabella chiamata Payroll.
Dati costituiti da ID dei dipendenti, nomi dei dipendenti e salario giornaliero percepito da ciascun dipendente.
I dipendenti iniziano a lavorare il lunedì e lavorano sei giorni alla settimana. La variabile di sistema FirstWeekDay non deve essere modificata.
L'utente finale desidera un oggetto grafico che visualizzi, in base all'ID e al nome del dipendente, i salari percepiti nella settimana fino a quel momento.
La funzione weekstart(), utilizzando la data di oggi come primo argomento e 0 come terzo argomento, imposta il lunedì come primo giorno della settimana e restituisce la data di inizio della settimana corrente. Sottraendo tale risultato dalla data corrente, l'espressione restituisce il numero di giorni trascorsi fino ad ora questa settimana.
La condizione valuta quindi se ci sono stati più di sei giorni nella settimana. In caso di risposta affermativa, il valore day_rate del dipendente viene moltiplicato per 6. Altrimenti, il valore day_rate viene moltiplicato per il numero di giorni che si sono verificati finora nella settimana.
Hai trovato utile questa pagina?
Se riscontri problemi con questa pagina o con il suo contenuto – un errore di battitura, un passaggio mancante o un errore tecnico – facci sapere come possiamo migliorare!