Questa funzione restituisce un valore corrispondente a un indicatore temporale con il primo millisecondo del giorno contenuto nell'argomento time. Il formato di output predefinito sarà il formato TimestampFormat impostato nello script.
Sintassi:
DayStart(time[, [period_no[, day_start]])
Tipo di dati restituiti: duale
Argomenti
Argomento
Descrizione
time
Il timestamp da valutare.
period_no
period_no è un numero intero o un'espressione la cui risoluzione è un numero intero, in cui il valore 0 indica il giorno che contiene il valore time. I valori negativi di period_no indicano i giorni precedenti, mentre i valori positivi indicano i giorni successivi.
day_start
Per specificare che i giorni non iniziano a mezzanotte, indicare un differimento come frazione di un giorno in day_start. Ad esempio, 0.125 per denotare 3:00 AM.
In altre parole, per creare l'offset dividere l'ora di inizio per 24 ore. Ad esempio, per un giorno che inizia alle 7:00 del mattino, utilizzare la frazione 7/24.
Casi di utilizzo
La funzione daystart() viene comunemente utilizzata come parte di un'espressione quando l'utente desidera che il calcolo utilizzi la frazione del giorno trascorsa finora. Ad esempio, può essere utilizzata per calcolare il totale dei salari guadagnati dai dipendenti nella giornata fino a quel momento.
Questi esempi utilizzano il formato timestamp 'M/D/YYYY h:mm:ss[.fff] TT'. Il formato timestamp viene specificato nell'istruzione SET TimeStamp sopra lo script di caricamento dei dati. Modificare il formato negli esempi in base alle proprie necessità.
Esempi di funzioni
Esempio
Risultato
daystart('01/25/2013 4:45:00 PM')
Restituisce 1/25/2013 12:00:00 AM.
daystart('1/25/2013 4:45:00 PM', -1)
Restituisce 1/24/2013 12:00:00 AM.
daystart('1/25/2013 16:45:00',0,0.5
)
Restituisce 1/25/2013 12:00:00 PM.
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.
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 semplice contenente un elenco di date, caricato in una tabella denominata Calendar.
Viene utilizzata la variabile di sistema TimeStampFormat predefinita ((M/D/YYYY h:mm:ss[.fff] TT).
Un caricamento precedente che crea un campo aggiuntivo, denominato SOD_timestamp, mediante la funzione daystart().
Oltre alla data, non viene fornito alla funzione alcun parametro aggiuntivo.
Script di caricamento
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';
Calendar:
Load
date,
daystart(date) as SOD_timestamp
;
Load
date
Inline
[
date
03/11/2022 1:47:15 AM
03/12/2022 4:34:58 AM
03/13/2022 5:15:55 AM
03/14/2022 9:25:14 AM
03/15/2022 10:06:54 AM
03/16/2022 10:44:42 AM
03/17/2022 11:33:30 AM
03/18/2022 12:58:14 PM
03/19/2022 4:23:12 PM
03/20/2022 6:42:15 PM
03/21/2022 7:41:16 PM
];
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
date
SOD_timestamp
Tabella dei risultati
date
SOD_timestamp
03/11/2022 1:47:15 AM
3/11/2022 12:00:00 AM
03/12/2022 4:34:58 AM
3/12/2022 12:00:00 AM
03/13/2022 5:15:55 AM
3/13/2022 12:00:00 AM
03/14/2022 9:25:14 AM
3/14/2022 12:00:00 AM
03/15/2022 10:06:54 AM
3/15/2022 12:00:00 AM
03/16/2022 10:44:42 AM
3/16/2022 12:00:00 AM
03/17/2022 11:33:30 AM
3/17/2022 12:00:00 AM
03/18/2022 12:58:14 PM
3/18/2022 12:00:00 AM
03/19/2022 4:23:12 PM
3/19/2022 12:00:00 AM
03/20/2022 6:42:15 PM
3/20/2022 12:00:00 AM
03/21/2022 7:41:16 PM
3/21/2022 12:00:00 AM
Come appare nella tabella sopra, la fine del timestamp giorno viene generata per ciascuna data nel nostro set di dati. Il timestamp è nel formato della variabile di sistema TimestampFormat M/D/YYYY h:mm:ss[.fff] TT.
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:
Un set di dati contenente le multe per divieto di sosta, che viene caricato in una tabella denominata Fines. Il set di dati include i seguenti campi:
id
due_date
number_plate
amount
Un caricamento precedente che utilizza la funzione daystart() e fornisce tutti e tre i parametri: time, period_no e day_start. Questo caricamento crea i seguenti due nuovi campi data:
Un campo di data early_repayment_period, che inizia sette giorni prima della scadenza del pagamento.
Un campo di data late_penalty_period, che inizia 14 giorni dopo la scadenza del pagamento.
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
due_date
early_repayment_period
late_penalty_period
Tabella dei risultati
due_date
early_repayment_period
late_penalty_period
02/11/2022 9:25:14 AM
2/4/2022 12:00:00 AM
2/25/2022 12:00:00 AM
03/25/2022 10:06:54 AM
3/18/2022 12:00:00 AM
4/8/2022 12:00:00 AM
04/14/2022 10:44:42 AM
4/7/2022 12:00:00 AM
4/28/2022 12:00:00 AM
06/28/2022 11:33:30 AM
6/21/2022 12:00:00 AM
7/12/2022 12:00:00 AM
08/15/2022 12:58:14 PM
8/8/2022 12:00:00 AM
8/29/2022 12:00:00 AM
11/16/2022 4:23:12 PM
11/9/2022 12:00:00 AM
11/30/2022 12:00:00 AM
01/17/2023 6:42:15 PM
1/10/2023 12:00:00 AM
1/31/2023 12:00:00 AM
03/22/2023 7:41:16 PM
3/15/2023 12:00:00 AM
4/5/2023 12:00:00 AM
I valori dei nuovi campi sono in TimestampFormat M/DD/YYYY tt. Essendo stata usata la funzione daystart(), i valori timestamp sono tutti al primo millisecondo del giorno.
I valori del periodo di rimborso anticipato sono sette giorni prima della data di scadenza, in quanto il secondo argomento passato nella funzione daystart() è negativo.
I valori del periodo di rimborso tardivo sono 14 giorni dopo la data di scadenza, in quanto il secondo argomento passato nella funzione daystart() è positivo.
Esempio 3 – day_start
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 precedente esempio.
Lo stesso caricamento precedente dell'esempio precedente.
In questo esempio, abbiamo impostato la giornata lavorativa in modo che inizi e termini alle 7:00 del mattino di ogni giorno.
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
due_date
early_repayment_period
late_penalty_period
Tabella dei risultati
due_date
early_repayment_period
late_penalty_period
02/11/2022
2/3/2022 7:00:00 AM
2/24/2022 7:00:00 AM
03/25/2022
3/17/2022 7:00:00 AM
4/7/2022 7:00:00 AM
04/14/2022
4/6/2022 7:00:00 AM
4/27/2022 7:00:00 AM
06/28/2022
6/20/2022 7:00:00 AM
7/11/2022 7:00:00 AM
08/15/2022
8/7/2022 7:00:00 AM
8/28/2022 7:00:00 AM
11/16/2022
11/8/2022 7:00:00 AM
11/29/2022 7:00:00 AM
01/17/2023
1/9/2023 7:00:00 AM
1/30/2023 7:00:00 AM
03/22/2023
3/14/2023 7:00:00 AM
4/4/2023 7:00:00 AM
Le date ora hanno un timestamp di 7:00 AM perché il valore dell'argomento day_start passato alla funzione daystart() è 7/24. In questo modo si imposta l'inizio del giorno alle 7:00 AM.
Poiché il campo due_date non ha un timestamp, viene trattato come le 12:00 AM, che quindi fa ancora parte del giorno precedente, dato che i giorni iniziano e finiscono alle 7:00 del mattino. Pertanto, il periodo di rimborso anticipato per una multa in scadenza l'11 febbraio inizia il 3 febbraio alle ore 7:00.
Esempio 4 – Esempio di oggetto grafico
Panoramica
Aprire l'Editor di caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Questo esempio utilizza lo stesso set di dati e lo stesso scenario dell'esempio precedente.
Tuttavia, solo la tabella Fines originale viene caricata nell'applicazione, mentre i due valori aggiuntivi delle scadenze vengono calcolati in un oggetto grafico.
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione: due_date.
Per creare il campo early_repayment_period, creare la seguente misura:
=daystart(due_date,-7,7/24)
Per creare il campo late_penalty_period, creare la seguente misura:
=daystart(due_date,14,7/24)
Tabella dei risultati
due_date
=daystart(due_date,-7,7/24)
=daystart(due_date,14,7/24)
02/11/2022 9:25:14 AM
2/4/2022 7:00:00 AM
2/25/2022 7:00:00 AM
03/25/2022 10:06:54 AM
3/18/2022 7:00:00 AM
4/8/2022 7:00:00 AM
04/14/2022 10:44:42 AM
4/7/2022 7:00:00 AM
4/28/2022 7:00:00 AM
06/28/2022 11:33:30 AM
6/21/2022 7:00:00 AM
7/12/2022 7:00:00 AM
08/15/2022 12:58:14 PM
8/8/2022 7:00:00 AM
8/29/2022 7:00:00 AM
11/16/2022 4:23:12 PM
11/9/2022 7:00:00 AM
11/30/2022 7:00:00 AM
01/17/2023 6:42:15 PM
1/10/2023 7:00:00 AM
1/31/2023 7:00:00 AM
03/22/2023 7:41:16 PM
3/15/2023 7:00:00 AM
4/5/2023 7:00:00 AM
I valori dei nuovi campi sono in TimestampFormat M/D/YYYY h:mm:ss[.fff] TT. Essendo stata usata la funzione daystart(), i valori timestamp corrispondono tutti al primo millisecondo del giorno.
I valori del periodo di rimborso anticipato sono sette giorni prima della data di scadenza, poiché il secondo argomento passato nella funzione daystart() era negativo.
I valori del periodo di rimborso tardivo sono 14 giorni dopo la data di scadenza, poiché il secondo argomento passato nella funzione daystart() era positivo.
Le date hanno un timestamp corrispondente alle 7:00 AM perché il valore del terzo argomento passato alla funzione daystart(), day_start, era 7/24.
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!