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:

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.

SintassiDATE(expression)
OutputData
DefinizioneRestituisce 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 DATEPARSE, non è necessario fornire un modello poiché DATE riconosce automaticamente molti formati di data standard. Tuttavia, se DATE non riconosce l’input, prova a utilizzare DATEPARSE e a specificare il formato.

MAKEDATE è un’altra funzione simile, ma MAKEDATE richiede l’input di valori numerici per anno, mese e giorno.

DATEADD

Aggiunge un numero specifico di parti della data (mesi, giorni, ecc) alla data di inizio.

SintassiDATEADD(date_part, interval, date)
OutputData
DefinizioneRestituisce 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#
NoteSupporta le date ISO 8601.

DATEDIFF

Restituisce il numero di parti della data (settimane, anni, e così via) tra due date.

SintassiDATEDIFF(date_part, date1, date2, [start_of_week])
OutputIntero
DefinizioneRestituisce 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])
NoteSupporta le date ISO 8601.

DATENAME

Restituisce il nome della parte della data specificato come stringhe discrete.

SintassiDATENAME(date_part, date, [start_of_week])
OutputStringa
DefinizioneRestituisce <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. DATEPART può essere più rapido perché è un’operazione numerica.

Modificando gli attributi del risultato del calcolo (dimensione o misura, continuo o discreto) e la formattazione della data, i risultati di DATEPART e DATENAME possono essere formattati in modo da essere identici.

Una funzione inversa è DATEPARSE, che accetta un valore stringa e lo formatta come data.

DATEPARSE

Restituisce stringhe formattate specificamente come date.

SintassiDATEPARSE(date_format, date_string)
OutputData
DefinizioneL’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

DATE è una funzione simile che riconosce automaticamente molti formati di data standard. DATEPARSE può essere un’opzione migliore se DATE non riconosce il modello di input.

MAKEDATE è un’altra funzione simile, ma MAKEDATE richiede l’input di valori numerici per anno, mese e giorno.

Le funzioni inverse che scompongono le date e restituiscono il valore delle loro parti, sono DATEPART (output numero intero) e DATENAME (output stringa).

Limitazioni del database

DATEPARSE è disponibile attraverso i seguenti connettori: connessioni non legacy Excel e file di testo, Amazon EMR Hadoop Hive, Cloudera Hadoop, Fogli Google, Hortonworks Hadoop Hive, MapR Hadoop Hive, MySQL, Oracle, PostgreSQL ed estrazioni di Tableau. Alcuni formati potrebbero non essere disponibili per tutte le connessioni.

DATEPARSE non è supportato nelle varianti di Hive. Sono supportati solo Denodo, Drill e Snowflake.

DATEPART

Restituisce il nome della parte della data specificato come un numero intero.

SintassiDATEPART(date_part, date, [start_of_week])
OutputIntero
DefinizioneRestituisce <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 è DATENAME, che restituisce il valore della parte della data specificato come una stringa discreta. DATEPART può essere più rapido perché è un’operazione numerica. Modificando gli attributi del campo (dimensione o misura, continuo o discreto) e la formattazione della data, i risultati di DATEPART e DATENAME possono essere formattati in modo da essere identici.

Una funzione inversa è DATEPARSE, che accetta un valore stringa e lo formatta come data.

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.

SintassiDATETRUNC(date_part, date, [start_of_week])
OutputData
DefinizioneTronca 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 start_of_week. Le settimane ISO iniziano sempre il lunedì. Per le impostazioni locali di questo esempio, un start_of_week non specificato significa che la settimana inizia la domenica.

Note

Supporta le date ISO 8601.

Non utilizzare DATETRUNC, ad esempio, per smettere di mostrare l’ora per un campo data e ora in una visualizzazione. Se desideri interrompere la visualizzazione di una data, regolane la formattazione invece di arrotondarne la precisione(Il collegamento viene aperto in una nuova finestra).

Ad esempio, DATETRUNC('day', #5/17/2022 3:12:48 PM#), se formattata nella visualizzazione per mostrare i secondi, verrebbe visualizzata come 5/17/2022 12:00:00 AM.

DAY

Restituisce il giorno del mese (1-31) come numero intero.

SintassiDAY(date)
OutputIntero
DefinizioneRestituisce il giorno della data <date> specificata come numero intero.
Esempio
Day(#September 22, 2018#) = 22
NoteVedi anche WEEK, MONTH, QUARTER, YEAR e gli equivalenti ISO.

ISDATE

Verifica se la stringa è un formato data valido.

SintassiISDATE(string)
OutputBooleano
DefinizioneRestituisce True se una determinata stringa <string> è una data valida.
Esempio
ISDATE(09/22/2018) = true
ISDATE(22SEP18) = false
NoteL’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

SintassiISOQUARTER(date)
OutputIntero
DefinizioneRestituisce il trimestre basato sul calendario settimanale ISO-8601 della data <date> indicata come numero intero.
Esempio
ISOQUARTER(#1986-03-25#) = 1
NoteVedi anche ISOWEEK, ISOWEEKDAY, ISOYEAR e gli equivalenti non ISO.

ISOWEEK

SintassiISOWEEK(date)
OutputIntero
DefinizioneRestituisce la settimana basata sul calendario settimanale ISO-8601 della data <date> indicata come numero intero.
Esempio
ISOWEEK(#1986-03-25#) = 13
NoteVedi anche ISOWEEKDAY, ISOQUARTER, ISOYEAR e gli equivalenti non ISO.

ISOWEEKDAY

SintassiISOWEEKDAY(date)
OutputIntero
DefinizioneRestituisce il giorno feriale basato sul calendario settimanale ISO-8601 della data <date> indicata come numero intero.
Esempio
ISOWEEKDAY(#1986-03-25#) = 2
NoteVedi anche ISOWEEK, ISOQUARTER, ISOYEAR e gli equivalenti non ISO.

ISOYEAR

SintassiISOYEAR(date)
OutputIntero
DefinizioneRestituisce l’anno basato sul calendario settimanale ISO-8601 della data <date> indicata come numero intero.
Esempio
ISOYEAR(#1986-03-25#) = 1,986
NoteVedi anche ISOWEEK, ISOWEEKDAY, ISOQUARTER e gli equivalenti non ISO.

MAKEDATE

SintassiMAKEDATE(year, month, day)
OutputData
DefinizioneRestituisce 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 MAKEDATE(2020,4,31) = May 1, 2020 invece di restituire un messaggio di errore che indica che non esiste il 31 aprile.

Disponibile per le estrazioni dei dati di Tableau. Verifica la disponibilità in altre origini dati.

MAKEDATE richiede input numerici per le parti di una data. Se i tuoi dati sono una stringa che dovrebbe essere una data, prova la funzione DATE. DATE riconosce automaticamente molti formati di data standard. Se DATE non riconosce l’input, prova a utilizzare DATEPARSE.

MAKEDATETIME

SintassiMAKEDATETIME(date, time)
OutputData e ora
DefinizioneRestituisce 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 è una funzione simile disponibile per le estrazioni di dati Tableau e alcune altre origini dati.

MAKETIME

SintassiMAKETIME(hour, minute, second)
OutputData e ora
DefinizioneRestituisce 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 MAKEDATETIME, disponibile solo per le connessioni compatibili con MYSQL.

MAX

SintassiMAX(expression) oppure MAX(expr1, expr2)
OutputStesso 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.

MAX può anche essere applicato a un singolo campo come aggregazione.

Esempio
MAX(4,7) = 7
MAX(#3/25/1986#, #2/20/2021#) = #2/20/2021#
MAX([Name]) = "Zander"
Note

Per le stringhe

MAX è solitamente l’ultimo valore in ordine alfabetico.

Per le origini dati di database, MAX permette di trovare il valore stringa più alto nella sequenza di ordinamento definita dal database per quella colonna.

Per le date

Per le date, MAX è la data più recente. Se MAX è un’aggregazione, il risultato non avrà una gerarchia di date. Se MAX è un confronto, il risultato manterrà la gerarchia di date.

Come aggregazione

MAX(expression) è una funzione aggregata e restituisce un singolo risultato aggregato. Questo risultato viene mostrato come AGG(expression) nella visualizzazione.

Come confronto

MAX(expr1, expr2) confronta i due valori e restituisce un valore a livello di riga.

Vedi anche MIN.

MIN

SintassiMIN(expression) oppure MIN(expr1, expr2)
OutputStesso 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.

MIN può anche essere applicato a un singolo campo come aggregazione.

Esempio
MIN(4,7) = 4
MIN(#3/25/1986#, #2/20/2021#) = #3/25/1986#
MIN([Name]) = "Abebi"
Note

Per le stringhe

MIN è solitamente il primo valore in ordine alfabetico.

Per le origini dati di database, MIN permette di trovare il valore stringa più basso nella sequenza di ordinamento definita dal database per quella colonna.

Per le date

Per le date, MIN è la prima data. Se MIN è un’aggregazione, il risultato non avrà una gerarchia di date. Se MIN è un confronto, il risultato manterrà la gerarchia di date.

Come aggregazione

MIN(expression) è una funzione aggregata e restituisce un singolo risultato aggregato. Questo risultato viene mostrato come AGG(expression) nella visualizzazione.

Come confronto

MIN(expr1, expr2) confronta i due valori e restituisce un valore a livello di riga.

Vedi anche MAX.

MONTH

SintassiMONTH(date)
OutputIntero
DefinizioneRestituisce il mese della data <date> specificata come numero intero.
Esempio
MONTH(#1986-03-25#) = 3
NoteVedi anche DAY, WEEK, QUARTER, YEAR e gli equivalenti ISO

NOW

SintassiNOW()
OutputData e ora
DefinizioneRestituisce la data e l’ora correnti del sistema locale.
Esempio
NOW() = 1986-03-25 1:08:21 PM
Note

NOW non accetta un argomento.

Vedi anche TODAY, un calcolo simile che restituisce una data invece di un valore data/ora.

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

SintassiQUARTER(date)
OutputIntero
DefinizioneRestituisce il trimestre della data <date> specificata come numero intero.
Esempio
QUARTER(#1986-03-25#) = 1
NoteVedi anche DAY, WEEK, MONTH, YEAR e gli equivalenti ISO

TODAY

SintassiTODAY()
OutputData
DefinizioneRestituisce la data corrente del sistema locale.
Esempio
TODAY() = 1986-03-25
Note

TODAY non accetta un argomento.

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

SintassiWEEK(date)
OutputIntero
DefinizioneRestituisce la settimana della data <date> specificata come numero intero.
Esempio
WEEK(#1986-03-25#) = 13
NoteVedi anche DAY, MONTH, QUARTER, YEAR e gli equivalenti ISO

YEAR

SintassiYEAR(date)
OutputIntero
DefinizioneRestituisce l’anno della data <date> specificata come numero intero.
Esempio
YEAR(#1986-03-25#) = 1,986
NoteVedi 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_partValori
'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:

FormatoTipo di datiValore
"25 marzo 1986"Stringa"25 marzo 1986"
#25/03/1986#Data#25/03/1986#
25/03/1986Decimale a virgola mobile0.00006042
25/03/1986Intero1.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.

  1. In Tableau Desktop, connettiti all’origine dati salvata Sample - Superstore, fornita con Tableau.
  2. Apri un foglio di lavoro.
  3. Dal riquadro Dati, sotto Dimensioni, trascina Data ordine sullo spazio Righe.
  4. 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.

  5. Sullo spazio Righe, fai clic sull’icona del più (+) sul campo QUARTER(Data ordine) per eseguire il drill-down in MONTH(Data ordine).

  6. Seleziona Analisi > Crea campo calcolato.
  7. 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.

  8. 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.
  9. Sullo spazio Righe, fai clic con il tasto destro del mouse su YEAR(Data trimestre) e seleziona Data esatta.
  10. 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.

Grazie per il tuo feedback.Il tuo feedback è stato inviato. Grazie!