Funzioni data
Le date sono un elemento comune in molti origini dati. Se un campo contiene date riconoscibili, avrà un tipo di dati data o data e ora. Quando i campi data vengono utilizzati nella visualizzazione, ricevono un insieme speciale di funzionalità che includono drill-down automatico della gerarchia di date, opzioni filtro specifiche per data e opzioni di formattazione specializzate della data. L’utilizzo delle date nei calcoli spesso richiede l’uso di funzioni specifiche per le date.
Acquisire familiarità con altri concetti di data
A volte le funzioni data fanno riferimento a elementi specifici per data, incluso l’argomento date_part
, il parametro facoltativo [start_of_week]
e le espressioni letterali data (#). Verranno trattati in modo più approfondito alla fine di questo argomento.
Esistono numerosi altri argomenti che potrebbero essere interessanti ma che non fanno parte delle funzioni data:
- Formattare la modalità di visualizzazione di una data in una visualizzazione: Formati data personalizzati
- Impostare le proprietà data predefinite: Proprietà data per un’origine dati
- Lavorare con le date fiscali: Date fiscali
- Utilizzare il calendario ISO-8601: Calendario settimanale ISO-8601
Suggerimento: il tuo campo è già riconosciuto come una data (presenta un’icona di data nel riquadro Dati) e vuoi verificarne l’aspetto nella visualizzazione?
Potrebbe essere opportuno formattarlo anziché utilizzare una funzione data. Consulta Formati data personalizzati e gli argomenti correlati per informazioni sull’utilizzo dei campi data. Le funzioni data in questa pagina consentono di modificare campi calcolati per le date, non di impostarne la formattazione per la visualizzazione.
Funzioni data disponibili in Tableau
DATE
Funzione conversione di tipo che modifica le espressioni di stringa e numero in date, purché siano in un formato riconoscibile.
Sintassi | DATE(expression) |
Output | Data |
Definizione | Restituisce una data con un numero, una stringa o un’espressione di data <expression> . |
Esempio | DATE([Employee Start Date]) DATE("September 22, 2018") DATE("9/22/2018") DATE(#2018-09-22 14:52#) |
Note | A differenza di
|
DATEADD
Aggiunge un numero specifico di parti della data (mesi, giorni, ecc) alla data di inizio.
Sintassi | DATEADD(date_part, interval, date) |
Output | Data |
Definizione | Restituisce la data <date> con il numero specificato <interval> aggiunto alla <date_part> di tale data. Ad esempio, aggiungendo tre mesi o 12 giorni a una data di inizio. |
Esempio | Estendi tutte le date di scadenza di una settimana DATEADD('week', 1, [due date]) Aggiungi 280 giorni alla data 20 febbraio 2021 DATEADD('day', 280, #2/20/21#) = #November 27, 2021# |
Note | Supporta le date ISO 8601. |
DATEDIFF
Restituisce il numero di parti della data (settimane, anni, e così via) tra due date.
Sintassi | DATEDIFF(date_part, date1, date2, [start_of_week]) |
Output | Intero |
Definizione | Restituisce la differenza tra <date1> e <date2> espressa in unità di <date_part> . Ad esempio, sottraendo le date in cui una persona si è unita e ha lasciato un gruppo musicale, per scoprire la durata della sua permanenza nel gruppo. |
Esempio | Numero di giorni tra 25 marzo 1986 e 20 febbraio 2021 DATEDIFF('day', #3/25/1986#, #2/20/2021#) = 12,751 I mesi di permanenza di una persona in un gruppo musicale DATEDIFF('month', [date joined band], [date left band]) |
Note | Supporta le date ISO 8601. |
DATENAME
Restituisce il nome della parte della data specificato come stringhe discrete.
Sintassi | DATENAME(date_part, date, [start_of_week]) |
Output | Stringa |
Definizione | Restituisce <date_part> di <date> come una stringa. |
Esempio | DATENAME('year', #3/25/1986#) = "1986" DATENAME('month', #1986-03-25#) = "March" |
Note | Supporta le date ISO 8601. Un calcolo molto simile è DATEPART, che restituisce il valore della parte della data specificato come un numero intero continuo. Modificando gli attributi del risultato del calcolo (dimensione o misura, continuo o discreto) e la formattazione della data, i risultati di Una funzione inversa è DATEPARSE, che accetta un valore stringa e lo formatta come data. |
DATEPARSE
Restituisce stringhe formattate specificamente come date.
Sintassi | DATEPARSE(date_format, date_string) |
Output | Data |
Definizione | L’argomento <date_format> descrive come viene disposto il campo <date_string> . A causa dei vari modi in cui può essere ordinato il campo string, <date_format> deve corrispondere esattamente. Per una spiegazione completa e dettagli di formattazione, consulta Convertire un campo in un campo di data(Il collegamento viene aperto in una nuova finestra). |
Esempio | DATEPARSE('yyyy-MM-dd', "1986-03-25") = #March 25, 1986# |
Note |
Le funzioni inverse che scompongono le date e restituiscono il valore delle loro parti, sono |
Limitazioni del database |
|
DATEPART
Restituisce il nome della parte della data specificato come un numero intero.
Sintassi | DATEPART(date_part, date, [start_of_week]) |
Output | Intero |
Definizione | Restituisce <date_part> di <date> come numero intero. |
Esempio | DATEPART('year', #1986-03-25#) = 1986 DATEPART('month', #1986-03-25#) = 3 |
Note | Supporta le date ISO 8601. Un calcolo molto simile è Una funzione inversa è |
DATETRUNC
Questa funzione può essere considerata come un arrotondamento della data. Prende una data specifica e restituisce una versione di quella data con la specificità desiderata. Poiché ogni data deve avere un valore per giorno, mese, trimestre e anno, DATETRUNC
imposta i valori come il valore più basso per ciascuna parte della data fino alla parte della data specificata. Per maggiori informazioni, fai riferimento all’esempio.
Sintassi | DATETRUNC(date_part, date, [start_of_week]) |
Output | Data |
Definizione | Tronca la data <date> in base a quanto specificato da <date_part> . Questa funzione restituisce una nuova data. Ad esempio, quando si tronca una data che si trova a metà del mese a livello mensile, questa funzione restituisce il primo giorno del mese. |
Esempio | DATETRUNC('day', #9/22/2018#) = #9/22/2018# DATETRUNC('iso-week', #9/22/2018#) = #9/17/2018# (il lunedì della settimana che contiene il giorno 22/9/2018) DATETRUNC(quarter, #9/22/2018#) = #7/1/2018# (il primo giorno del trimestre che contiene il giorno 22/9/2018) Nota: per settimana e settimana iso, entra in gioco |
Note | Supporta le date ISO 8601. Non utilizzare Ad esempio, |
DAY
Restituisce il giorno del mese (1-31) come numero intero.
Sintassi | DAY(date) |
Output | Intero |
Definizione | Restituisce il giorno della data <date> specificata come numero intero. |
Esempio | Day(#September 22, 2018#) = 22 |
Note | Vedi anche WEEK , MONTH , QUARTER , YEAR e gli equivalenti ISO. |
ISDATE
Verifica se la stringa è un formato data valido.
Sintassi | ISDATE(string) |
Output | Booleano |
Definizione | Restituisce True se una determinata stringa <string> è una data valida. |
Esempio | ISDATE(09/22/2018) = true ISDATE(22SEP18) = false |
Note | L’argomento richiesto deve essere una stringa. ISDATE non può essere utilizzato per un campo con un tipo di dati data: il calcolo restituirà un errore. |
ISOQUARTER
Sintassi | ISOQUARTER(date) |
Output | Intero |
Definizione | Restituisce il trimestre basato sul calendario settimanale ISO-8601 della data <date> indicata come numero intero. |
Esempio | ISOQUARTER(#1986-03-25#) = 1 |
Note | Vedi anche ISOWEEK , ISOWEEKDAY , ISOYEAR e gli equivalenti non ISO. |
ISOWEEK
Sintassi | ISOWEEK(date) |
Output | Intero |
Definizione | Restituisce la settimana basata sul calendario settimanale ISO-8601 della data <date> indicata come numero intero. |
Esempio | ISOWEEK(#1986-03-25#) = 13 |
Note | Vedi anche ISOWEEKDAY , ISOQUARTER , ISOYEAR e gli equivalenti non ISO. |
ISOWEEKDAY
Sintassi | ISOWEEKDAY(date) |
Output | Intero |
Definizione | Restituisce il giorno feriale basato sul calendario settimanale ISO-8601 della data <date> indicata come numero intero. |
Esempio | ISOWEEKDAY(#1986-03-25#) = 2 |
Note | Vedi anche ISOWEEK , ISOQUARTER , ISOYEAR e gli equivalenti non ISO. |
ISOYEAR
Sintassi | ISOYEAR(date) |
Output | Intero |
Definizione | Restituisce l’anno basato sul calendario settimanale ISO-8601 della data <date> indicata come numero intero. |
Esempio | ISOYEAR(#1986-03-25#) = 1,986 |
Note | Vedi anche ISOWEEK , ISOWEEKDAY , ISOQUARTER e gli equivalenti non ISO. |
MAKEDATE
Sintassi | MAKEDATE(year, month, day) |
Output | Data |
Definizione | Restituisce un valore di data costruito a partire dai valori <year> , <month> e <day> specificati. |
Esempio | MAKEDATE(1986,3,25) = #1986-03-25# |
Note | Nota: i valori immessi erroneamente verranno regolati in una data come Disponibile per le estrazioni dei dati di Tableau. Verifica la disponibilità in altre origini dati.
|
MAKEDATETIME
Sintassi | MAKEDATETIME(date, time) |
Output | Data e ora |
Definizione | Restituisce un valore di data e ora che combina una data <date> e un’ora <time> . La data può essere una data, un valore data e ora o un tipo di stringa. L’ora deve essere un valore data e ora. |
Esempio | MAKEDATETIME("1899-12-30", #07:59:00#) = #12/30/1899 7:59:00 AM# MAKEDATETIME([Date], [Time]) = #1/1/2001 6:00:00 AM# |
Note | Questa funzione è disponibile solo per connessioni compatibili con MySQL (che per Tableau sono MySQL e Amazon Aurora).
|
MAKETIME
Sintassi | MAKETIME(hour, minute, second) |
Output | Data e ora |
Definizione | Restituisce un valore di data costruito a partire dai valori <hour> , <minute> e <second> specificati. |
Esempio | MAKETIME(14, 52, 40) = #1/1/1899 14:52:40# |
Note | Poiché Tableau non supporta un tipo di dati ora, ma solo data/ora, l’output è un valore data/ora. La parte di data del campo sarà 1/1/1899. Funzione simile a |
MAX
Sintassi | MAX(expression) oppure MAX(expr1, expr2) |
Output | Stesso tipo di dati dell’argomento o NULL se qualsiasi parte dell’argomento è NULL. |
Definizione | Restituisce il massimo dei due argomenti, che devono essere dello stesso tipo di dati.
|
Esempio | MAX(4,7) = 7 |
Note | Per le stringhe
Per le origini dati di database, Per le date Per le date, Come aggregazione
Come confronto
Vedi anche |
MIN
Sintassi | MIN(expression) oppure MIN(expr1, expr2) |
Output | Stesso tipo di dati dell’argomento o NULL se qualsiasi parte dell’argomento è NULL. |
Definizione | Restituisce il minimo dei due argomenti, che devono essere dello stesso tipo di dati.
|
Esempio | MIN(4,7) = 4 |
Note | Per le stringhe
Per le origini dati di database, Per le date Per le date, Come aggregazione
Come confronto
Vedi anche |
MONTH
Sintassi | MONTH(date) |
Output | Intero |
Definizione | Restituisce il mese della data <date> specificata come numero intero. |
Esempio | MONTH(#1986-03-25#) = 3 |
Note | Vedi anche DAY , WEEK , QUARTER , YEAR e gli equivalenti ISO |
NOW
Sintassi | NOW() |
Output | Data e ora |
Definizione | Restituisce la data e l’ora correnti del sistema locale. |
Esempio | NOW() = 1986-03-25 1:08:21 PM |
Note |
Vedi anche Se l’origine dati è una connessione live, la data e l’ora di sistema potrebbero trovarsi in un altro fuso orario. Per maggiori informazioni su come affrontare questo problema, consulta la Knowledge Base. |
QUARTER
Sintassi | QUARTER(date) |
Output | Intero |
Definizione | Restituisce il trimestre della data <date> specificata come numero intero. |
Esempio | QUARTER(#1986-03-25#) = 1 |
Note | Vedi anche DAY , WEEK , MONTH , YEAR e gli equivalenti ISO |
TODAY
Sintassi | TODAY() |
Output | Data |
Definizione | Restituisce la data corrente del sistema locale. |
Esempio | TODAY() = 1986-03-25 |
Note |
Vedi anche NOW, un calcolo simile che restituisce un valore data/ora invece di una data. Se l’origine dati è una connessione live, la data di sistema potrebbe trovarsi in un altro fuso orario. Per maggiori informazioni su come affrontare questo problema, consulta la Knowledge Base. |
WEEK
Sintassi | WEEK(date) |
Output | Intero |
Definizione | Restituisce la settimana della data <date> specificata come numero intero. |
Esempio | WEEK(#1986-03-25#) = 13 |
Note | Vedi anche DAY , MONTH , QUARTER , YEAR e gli equivalenti ISO |
YEAR
Sintassi | YEAR(date) |
Output | Intero |
Definizione | Restituisce l’anno della data <date> specificata come numero intero. |
Esempio | YEAR(#1986-03-25#) = 1,986 |
Note | Vedi anche DAY , WEEK , MONTH , QUARTER e gli equivalenti ISO |
date_part
Molte funzioni data in Tableau accettano l’argomento date_part
, che è una costante di stringa che comunica alla funzione quale parte di una data prendere in considerazione, come giorno, settimana, trimestre e così via. I valori date_part
validi che puoi utilizzare sono:
date_part | Valori |
---|---|
'year' | Anno in quattro cifre |
'quarter' | 1-4 |
'month' | 1-12 o “January”, “February” e così via |
'dayofyear' | Giorno dell’anno: l’1 gennaio è 1, l’1 febbraio è 32 e così via. |
'day' | 1-31 |
'weekday' | 1-7 o “Sunday”, “Monday” e così via |
'week' | 1-52 |
'hour' | 0-23 |
'minute' | 0-59 |
'second' | 0-60 |
'iso-year' | Anno ISO 8601 di quattro cifre |
'iso-quarter' | 1-4 |
'iso-week' | 1-52, l’inizio della settimana è sempre lunedì |
'iso-weekday' | 1-7, l’inizio della settimana è sempre lunedì |
Il parametro [start_of_week]
Alcune funzioni hanno il parametro opzionale [start_of_week]
. Il parametro start_of_week
può essere utilizzato per specificare quale giorno è considerato come primo giorno della settimana, ad esempio "Domenica" o "Lunedì". Se è omesso, l’inizio della settimana è determinato dall’origine dati. Consulta Proprietà data per un’origine dati.
Per gli esempi riportati di seguito, il 22 settembre è una domenica e il 24 settembre è un giovedì. La funzione DATEDIFF viene utilizzata per calcolare le settimane tra queste date.
DATEDIFF('week', #2013-09-22#, #2013-09-24#, 'monday') = 1
- Poiché start_of_week è "lunedì" queste date sono in settimane diverse.
DATEDIFF('week', #2013-09-22#, #2013-09-24#, 'sunday') = 0
- Poiché start_of_week è "domenica" queste date sono nella stessa settimana.
L’espressione letterale data (#)
Gli esempi spesso utilizzano il simbolo cancelletto (#) con le espressioni di data. Si tratta dell’espressione letterale data, simile all’utilizzo di virgolette per le stringhe di testo. Comunica a Tableau che il valore tra i simboli è una data.
Senza le espressioni letterali data, le date potrebbero essere interpretate come vari altri tipi di dati. Ad esempio:
Formato | Tipo di dati | Valore |
"25 marzo 1986" | Stringa | "25 marzo 1986" |
#25/03/1986# | Data | #25/03/1986# |
25/03/1986 | Decimale a virgola mobile | 0.00006042 |
25/03/1986 | Intero | 1.958 |
martedì 25 marzo 1986 | non valido |
Per maggiori informazioni, consulta Sintassi delle espressioni letterali.
Creare un calcolo della data
Esercitati a creare un calcolo della data utilizzando l’origine dati di esempio di Superstore.
- In Tableau Desktop, connettiti all’origine dati salvata Sample - Superstore, fornita con Tableau.
- Apri un foglio di lavoro.
- Dal riquadro Dati, sotto Dimensioni, trascina Data ordine sullo spazio Righe.
- Sullo spazio Righe, fai clic sull’icona del più (+) sul campo YEAR(Data ordine).
QUARTER(Data ordine) viene aggiunto allo spazio Righe e la vista viene aggiornata.
- Sullo spazio Righe, fai clic sull’icona del più (+) sul campo QUARTER(Data ordine) per eseguire il drill-down in MONTH(Data ordine).
- Seleziona Analisi > Crea campo calcolato.
- Nell’editor di calcolo che si apre, esegui le seguenti operazioni:
- Denomina il campo calcolato Data trimestre.
- Immetti la seguente formula:
DATETRUNC('quarter', [Order Date])
- Al termine, fai clic su OK.
Visualizzerai il nuovo campo calcolato Data sotto Dimensioni nel riquadro Dati. Proprio come gli altri campi, puoi utilizzarlo in una o più visualizzazioni.
- Dal riquadro Dati, sotto Dimensioni, trascina Data trimestre nello spazio Righe e inseriscila a destra di MONTH(Data ordine). La visualizzazione viene aggiornata con i valori dell’anno. Il motivo è che Tableau riporta i dati della data con il livello di dettaglio massimo.
- Sullo spazio Righe, fai clic con il tasto destro del mouse su YEAR(Data trimestre) e seleziona Data esatta.
- Sullo spazio Righe, fai di nuovo clic con il tasto destro del mouse su YEAR(Data trimestre) e seleziona Discreto.
La visualizzazione viene aggiornata con la data trimestre esatta per ogni riga della tabella.