Questa funzione restituisce una data calcolata dall'ora hh, dal minuto mm e dal secondo ss.
Sintassi:
MakeTime(hh [ , mm [ , ss ] ])
Tipo di dati restituiti: duale
Argomenti
Argomento
Descrizione
hh
L'ora è un numero intero.
mm
Il minuto è un numero intero.
Se non si indicano i minuti, verrà utilizzato il valore 00.
ss
Il secondo è un numero intero.
Se non si indicano i secondi, verrà utilizzato il valore 00.
Casi di utilizzo
La funzione maketime() viene comunemente utilizzata nello script per la generazione dei dati per generare un campo temporale. A volte, quando il campo dell'ora è derivato dal testo in ingresso, questa funzione può essere utilizzata per costruire l'ora utilizzando i suoi componenti.
Questi esempi utilizzano il formato orario h:mm:ss. Il formato dell'ora viene specificato nell'istruzione SET TimeFormat nella parte superiore dello script di caricamento dei dati. Modificare il formato negli esempi in base alle proprie necessità.
Esempi di funzioni
Esempio
Risultato
maketime(22)
Restituisce 22:00:00.
maketime(22, 17)
Restituisce 22:17:00.
maketime(22,17,52 )
Restituisce 22:17:52.
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.
Le impostazioni regionali predefinite delle app si basano sulle impostazioni regionali del sistema del computer o del server in cui risulta installato Qlik Sense. Se il server Qlik Sense a cui si accede è impostato in Svezia, l'editor caricamento dati utilizzerà le impostazioni regionali svedesi per date, ora e valuta. Queste impostazioni di formato regionale non riguardano la lingua visualizzata nell'interfaccia utente Qlik Sense. Qlik Sense verrà visualizzato nella stessa lingua del browser utilizzato.
Esempio 1 – maketime()
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, caricato in una tabella denominata Transactions.
Gli orari delle transazioni sono forniti in tre campi: hours, minutes e seconds.
La creazione di un campo, transaction_time, che restituisce l'ora nel formato della variabile di sistema TimeFormat.
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
transaction_hour
transaction_minute
transaction_second
transaction_time
Tabella dei risultati
transaction_hour
transaction_minute
transaction_second
transaction_time
2
52
22
2:52:22 AM
6
32
07
6:32:07 AM
9
25
23
9:25:23 AM
12
09
16
12:09:16 PM
17
55
22
5:55:22 PM
18
43
30
6:43:30 PM
21
43
41
9:43:41 PM
Il campo transaction_time viene creato nella precedente istruzione LOAD utilizzando la funzione maketime() e passando i campi ora, minuti e secondi come argomenti della funzione.
La funzione combina e converte questi valori in un campo temporale, restituendo i risultati nel formato orario della variabile di sistema TimeFormat.
Esempio 2 – time() function
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, transaction_time, che ci permetterà di mostrare i risultati in formato orario 24 ore senza modificare la variabile di sistema TimeFormat.
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
transaction_hour
transaction_minute
transaction_second
transaction_time
Tabella dei risultati
transaction_hour
transaction_minute
transaction_second
transaction_time
2
52
22
2:52:22
6
32
07
6:32:07
9
25
23
9:25:23
12
09
16
12:09:16
17
55
22
17:55:22
18
43
30
18:43:30
21
43
41
21:43:41
In questo caso, la funzione maketime() è nidificata all'interno della funzione time(). Il secondo argomento della funzione time() imposta il formato dei risultati della funzione maketime() come il valore h:mm:ss richiesto.
Esempio 3 - 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:
Un set di dati contenente un insieme di transazioni, caricato in una tabella denominata Transactions.
Tempi di transazione forniti in due campi: hours e minutes.
La creazione di un campo, transaction_time, che restituisce l'ora nel formato della variabile di sistema TimeFormat.
Creare una misura dell'oggetto grafico, transaction_time, che restituisca un orario nel formato h:mm:ss TT.
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
transaction_hour
transaction_minute
Per calcolare il valore transaction_time, creare questa misura:
=maketime(transaction_hour,transaction_minute)
Tabella dei risultati
transaction_hour
transaction_minute
=maketime(transaction_hour, transaction_minute)
2
52
2:52:00 AM
6
32
6:32:00 AM
9
25
9:25:00 AM
12
09
12:09:00 PM
17
55
5:55:00 PM
18
43
6:43:00 PM
21
43
9:43:00 PM
La misura transaction_time viene creata nell'oggetto grafico utilizzando la funzione maketime() e passando i campi anno e minuto come argomenti della funzione.
La funzione combina quindi questi valori e i secondi vengono assunti pari a 00. Questi valori vengono poi convertiti in un campo temporale, restituendo i risultati nel formato della variabile di sistema TimeFormat.
Esempio 4 – Scenario
Panoramica
Creare un set di dati di calendario per il mese di gennaio 2022, suddiviso in incrementi di otto ore.
Script di caricamento
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';
tmpCalendar:
load
*
where year(date)=2022;
load
date(recno()+makedate(2021,12,31)) as date
AutoGenerate 31;
Left join(tmpCalendar)
load
maketime((recno()-1)*8,00,00) as time
autogenerate 3;
Calendar:
load
timestamp(date + time) as timestamp
resident tmpCalendar;
drop table tmpCalendar;
Risultati
Tabella dei risultati
timestamp
1/1/2022 12:00:00 AM
1/1/2022 8:00:00 AM
1/1/2022 4:00:00 PM
1/2/2022 12:00:00 AM
1/2/2022 8:00:00 AM
1/2/2022 4:00:00 PM
1/3/2022 12:00:00 AM
1/3/2022 8:00:00 AM
1/3/2022 4:00:00 PM
1/4/2022 12:00:00 AM
1/4/2022 8:00:00 AM
1/4/2022 4:00:00 PM
1/5/2022 12:00:00 AM
1/5/2022 8:00:00 AM
1/5/2022 4:00:00 PM
1/6/2022 12:00:00 AM
1/6/2022 8:00:00 AM
1/6/2022 4:00:00 PM
1/7/2022 12:00:00 AM
1/7/2022 8:00:00 AM
1/7/2022 4:00:00 PM
1/8/2022 12:00:00 AM
1/8/2022 8:00:00 AM
1/8/2022 4:00:00 PM
1/9/2022 12:00:00 AM
+ 68 ulteriori righe
La funzione iniziale autogenerate crea un calendario contenente tutte le date di gennaio in una tabella chiamata tmpCalendar.
Viene creata una seconda tabella, contenente tre record. Per ogni record, viene preso il valore recno() – 1 (valori 0, 1, 2) e il risultato viene moltiplicato per 8. Di conseguenza, si ottengono i valori 0, 8 e 16. Questi valori vengono utilizzati come parametro dell'ora in una funzione maketime(), con i valori dei minuti e dei secondi pari a 0. Di conseguenza, la tabella contiene tre campi orari: 12:00:00 AM, 8:00:00 AM e 4:00:00 PM.
Questa tabella è unita alla tabella tmpCalendar. Poiché non ci sono campi corrispondenti tra le due tabelle per il join, le righe dell'ora vengono aggiunte a ciascuna riga della data. Di conseguenza, ogni riga di data viene ripetuta tre volte per ogni valore temporale.
Infine, la tabella Calendario viene creata da un caricamento residente della tabella tmpCalendar. I campi data e ora vengono concatenati e avvolti nella funzione timestamp() per creare il campo timestamp.
La tabella tmpCalendar viene quindi rilasciata.
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!