Funções de data

As datas são um elemento comum em muitas fontes de dados. Se um campo contiver datas reconhecíveis, ele terá um tipo de dados data ou data e hora. Quando os campos de data são usados na visualização, eles obtêm um conjunto especial de funcionalidades, incluindo um detalhamento automático da hierarquia de datas, opções de filtro específicas de data e opções especializadas de formatação de data. O uso de datas em cálculos geralmente requer o uso de funções específicas de data.

Familiarize-se com outros conceitos de data

As funções de data às vezes fazem referência a elementos específicos de data, incluindo o argumento date_part, o parâmetro opcional[start_of_week] e literais de data (#). Eles são abordados com mais detalhes no final deste tópico.

Existem vários outros tópicos que podem ser de interesse, mas não fazem parte das funções de data:

Dica: seu campo já foi reconhecido como uma data (ele tem um ícone de data no painel Dados) e você está tentando controlar como ele aparece na visualização? Talvez seja necessário formatá-lo em vez de usar uma função de data. Por exemplo, você quer mostrar 22/09/2024 como 24/09. Isso é feito por meio da formatação da data, não de um cálculo.

Ver Formatos de data personalizados e tópicos relacionados para trabalhar com campos de data. As funções de data nesta página permitem manipular campos calculados de datas, e não definir sua formatação de exibição.

Funções de data disponíveis no Tableau

DATE

Função de conversão de tipo que altera as expressões de cadia de caracteres e número em datas, desde que estejam em um formato reconhecível.

SintaxeDATE(expression)
SaídaData
DefiniçãoRetorna uma data de acordo com um número, cadeia de caracteres ou de data <expression>.
Exemplo
DATE([Employee Start Date])
DATE("September 22, 2018") 
DATE("9/22/2018")
DATE(#2018-09-22 14:52#)
Observações

Ao contrário de DATEPARSE, não há necessidade de fornecer um padrão como DATE, pois reconhece automaticamente muitos formatos de data padrão. Se DATE não reconhecer a entrada, no entanto, tente usar DATEPARSE e especificar o formato.

MAKEDATE é outra função semelhante, mas MAKEDATE requer a entrada de valores numéricos para ano, mês e dia.

DATEADD

Adiciona um número especificado de partes de data (meses, dias etc) à data de início.

SintaxeDATEADD(date_part, interval, date)
SaídaData
DefiniçãoRetorna a <date> com o <interval> do número especificado, adicionado a <date_part> especificada dessa data. Por exemplo, adicionar três meses ou 12 dias a uma data de início.
Exemplo

Adie todas as datas de vencimento em uma semana

DATEADD('week', 1, [due date])

Adicione 280 dias à data 20 de fevereiro de 2021

DATEADD('day', 280, #2/20/21#) = #November 27, 2021#
ObservaçõesOferece suporte às datas de ISO 8601.

DATEDIFF

Retorna o número de partes da data (semanas, anos etc.) entre duas datas.

SintaxeDATEDIFF(date_part, date1, date2, [start_of_week])
SaídaInteiro
DefiniçãoRetorna a diferença entre <date1> e <date2> expressa em unidades de <date_part>. Por exemplo, subtraindo as datas que alguém entrou e saiu de uma banda para ver quanto tempo eles estavam na banda.
Exemplo

Número de dias entre 25 de março de 1986 e 20 de fevereiro de 2021

DATEDIFF('day', #3/25/1986#, #2/20/2021#) = 12,751

Quantos meses alguém estava em uma banda

DATEDIFF('month', [date joined band], [date left band])
ObservaçõesOferece suporte às datas de ISO 8601.

DATENAME

Retorna o nome da parte de data especificada como uma cadeia de caracteres discreta.

SintaxeDATENAME(date_part, date, [start_of_week])
SaídaCadeia de caracteres
DefiniçãoRetorna <date_part> de <date> como uma cadeia de caracteres.
Exemplo
DATENAME('year', #3/25/1986#) = "1986"
DATENAME('month', #1986-03-25#) = "March"
Observações

Oferece suporte às datas de ISO 8601.

Um cálculo muito semelhante é DATEPART, que retorna o valor da parte da data especificada como um inteiro contínuo. DATEPART pode ser mais rápido porque é uma operação numérica.

Alterando os atributos do resultado do cálculo (dimensão ou medida, contínua ou discreta) e a formatação da data, os resultados de DATEPART e DATENAME podem ser formatados para serem idênticos.

Uma função inversa é DATEPARSE, que recebe um valor de cadeia de caracteres e o formata como uma data.

DATEPARSE

Retorna cadeias de caracteres especificamente formatadas como datas.

SintaxeDATEPARSE(date_format, date_string)
SaídaData
DefiniçãoO argumento <date_format> como o campo <date_string> é organizado. Devido à variedade de maneiras que o campo de cadeia de caracteres pode ser ordenado, o <date_format> precisa ter correspondência exata. Para obter uma explicação completa e os detalhes de formatação, consulte Converter um campo em um campo de data(O link abre em nova janela).
Exemplo
DATEPARSE('yyyy-MM-dd', "1986-03-25") = #March 25, 1986#
Observações

DATE é uma função semelhante que reconhece automaticamente muitos formatos de data padrão. DATEPARSE pode ser uma opção melhor se DATE não reconhecer o padrão de entrada.

MAKEDATE é outra função semelhante, mas MAKEDATE requer a entrada de valores numéricos para ano, mês e dia.

As funções inversas, que separam datas e retornam o valor de suas partes, são DATEPART (saída de inteiro) e DATENAME (saída de cadeia de caracteres).

Limitações do banco de dados

DATEPARSE está disponível para os seguintes conectores: conexões não herdadas de arquivos de texto e do Excel, Amazon EMR, Hadoop Hive, Cloudera Hadoop, Planilhas Google, Hortonworks Hadoop Hive, MapR Hadoop Hive, MySQL, Oracle, PostgreSQL e extrações do Tableau. Alguns formatos talvez não estejam disponíveis para todas as conexões.

DATEPARSE não é compatível nas variantes de Hive. Apenas Denodo, Drill e Snowflake são aceitos.

DATEPART

Retorna o nome da parte de data especificada como um inteiro.

SintaxeDATEPART(date_part, date, [start_of_week])
SaídaInteiro
DefiniçãoRetorna <date_part> de <date> como um inteiro.
Exemplo
DATEPART('year', #1986-03-25#) = 1986
DATEPART('month', #1986-03-25#) = 3
Observações

Oferece suporte às datas de ISO 8601.

Um cálculo muito semelhante é DATENAME, que retorna o nome da parte da data especificada como uma cadeia de caracteres discreta. DATEPART pode ser mais rápido porque é uma operação numérica. Alterando os atributos do resultado do campo (dimensão ou medida, contínua ou discreta) e a formatação da data, os resultados de DATEPART e DATENAME podem ser formatados para serem idênticos.

Uma função inversa é DATEPARSE, que recebe um valor de cadeia de caracteres e o formata como uma data.

DATETRUNC

Esta função pode ser considerada como arredondamento de data. Leva uma data específica e retorna uma versão dessa data na especificidade desejada. Como cada data deve ter um valor para dia, mês, trimestre e ano, DATETRUNC define os valores como o valor mais baixo para cada parte da data até a parte da data especificada. Consulte o exemplo para obter mais informações.

SintaxeDATETRUNC(date_part, date, [start_of_week])
SaídaData
DefiniçãoTrunca a <date> na precisão definida por <date_part>. Esta função retorna uma nova data. Por exemplo, quando você trunca uma data no meio do mês no nível do mês, essa função retorna o primeiro dia do mês.
Exemplo
DATETRUNC('day', #9/22/2018#) = #9/22/2018#
DATETRUNC('iso-week', #9/22/2018#) = #9/17/2018#

(a segunda-feira da semana contendo 9/22/2018)

DATETRUNC(quarter, #9/22/2018#) = #7/1/2018# 

(primeiro dia do trimestre contendo 9/22/2018)

Observação: para semana e iso-semana, o start_of_week é usado. Os dias da semana do ISO sempre começam na segunda-feira. Para a localidade deste exemplo, um start_of_week não especificado significa que a semana começa no domingo.

Observações

Oferece suporte às datas de ISO 8601.

Você não deveria usar DATETRUNC para, por exemplo, parar de mostrar a hora de um campo de data e hora em uma visualização. Se você quiser truncar as exibições de uma data em vez de arredondar sua precisão, ajuste a formatação(O link abre em nova janela).

Por exemplo, DATETRUNC('day', #5/17/2022 3:12:48 PM#), se formatado na visualização para exibir segundos, seria exibido como 5/17/2022 12:00:00 AM. O valor é truncado para o dia, mas a exibição vai para os segundos.

DAY

Retorna o dia do mês (1 a 31) especificada como um inteiro.

SintaxeDAY(date)
SaídaInteiro
DefiniçãoRetorna o dia da <date> especificada como um inteiro.
Exemplo
Day(#September 22, 2018#) = 22
ObservaçõesConsulte também WEEK, MONTH, TRIMESTRE, YEAR e os equivalentes ISO.

ISDATE

Verifica se a cadeia de caracteres é um formato de data válido.

SintaxeISDATE(string)
SaídaBooliano
DefiniçãoRetornará true se uma determinada <string> for uma data válida.
Exemplo
ISDATE(09/22/2018) = true
ISDATE(22SEP18) = false
ObservaçõesO argumento necessário deve ser uma cadeia de caracteres. ISDATE não pode ser usado para um campo com um tipo de dados de data – o cálculo retornará um erro.

ISOQUARTER

SintaxeISOQUARTER(date)
SaídaInteiro
DefiniçãoRetorna o trimestre baseado em semana ISO8601 de uma <date> especificada como um inteiro.
Exemplo
ISOQUARTER(#1986-03-25#) = 1
ObservaçõesConsulte também ISOWEEK, ISOWEEKDAY, ISOYEAR, e não equivalentes ao ISO.

ISOWEEK

SintaxeISOWEEK(date)
SaídaInteiro
DefiniçãoRetorna a semana baseada em semana ISO8601 especificada de <date> como um inteiro.
Exemplo
ISOWEEK(#1986-03-25#) = 13
ObservaçõesConsulte também ISOWEEKDAY, ISOQUARTER, ISOYEAR, e não equivalentes ao ISO.

ISOWEEKDAY

SintaxeISOWEEKDAY(date)
SaídaInteiro
DefiniçãoRetorna dia da semana baseado em semana ISO8601 de uma <date> especificada como um inteiro.
Exemplo
ISOWEEKDAY(#1986-03-25#) = 2
ObservaçõesConsulte também ISOWEEK, ISOQUARTER, ISOYEAR, e não equivalentes ao ISO.

ISOYEAR

SintaxeISOYEAR(date)
SaídaInteiro
DefiniçãoRetorna ano baseado em semana ISO8601 de uma <date> especificada como um inteiro.
Exemplo
ISOYEAR(#1986-03-25#) = 1,986
ObservaçõesConsulte também ISOWEEK, ISOWEEKDAY, ISOQUARTER, e não equivalentes ao ISO.

MAKEDATE

SintaxeMAKEDATE(year, month, day)
SaídaData
DefiniçãoRetorna um valor de data composto por <year>, <month> e <day> especificados.
Exemplo
MAKEDATE(1986,3,25) = #1986-03-25#
Observações

Observação: os valores inseridos incorretamente serão ajustados em uma data, como MAKEDATE(2020,4,31) = May 1, 2020 em vez de retornar um erro informando que não há 31 de abril.

Disponível para as Extrações de dados do Tableau. Verifique a disponibilidade em outras fontes de dados.

MAKEDATE requer entradas numéricas para as partes de uma data. Se os dados são uma cadeia de caracteres que deveria ser uma data, tente a função DATE. DATE reconhece automaticamente muitos formatos de data padrão. Se DATE não reconhecer a entrada, tente usar DATEPARSE.

MAKEDATETIME

SintaxeMAKEDATETIME(date, time)
SaídaDatetime
DefiniçãoRetorna um datetime que combina <date> e <time>. A data pode ser um tipo date, datetime ou string. A hora deve ser um datetime.
Exemplo
MAKEDATETIME("1899-12-30", #07:59:00#) = #12/30/1899 7:59:00 AM#
MAKEDATETIME([Date], [Time]) = #1/1/2001 6:00:00 AM#
Observações

Esta função está disponível somente para conexões compatíveis com o MySQL (que, para o Tableau, são o MySQL e o Amazon Aurora).

MAKETIME é uma função semelhante disponível para Extrações de dados do Tableau e algumas outras fontes de dados.

MAKETIME

SintaxeMAKETIME(hour, minute, second)
SaídaDatetime
DefiniçãoRetorna um valor de data composto por <hour>, <minute> e <second> especificados.
Exemplo
MAKETIME(14, 52, 40) = #1/1/1899 14:52:40#
Observações

Como o Tableau não oferece suporte a um tipo de dados de hora, apenas DATETIME e hora, a saída é uma datetime. A parte de data do campo será 1/1/1899.

Função semelhante a MAKEDATETIME, que só está disponível para conexões compatíveis com MYSQL.

MAX

SintaxeMAX(expression) ou MAX(expr1, expr2)
SaídaMesmo tipo de dados do argumento ou NULL se alguma parte do argumento for nula.
Definição

Retorna o máximo de dois argumentos, que devem ser do mesmo tipo de dados.

MAX também pode ser aplicada a um único campo em uma agregação.

Exemplo
MAX(4,7) = 7
MAX(#3/25/1986#, #2/20/2021#) = #2/20/2021#
MAX([Name]) = "Zander"
Observações

Para cadeia de caracteres

MAX geralmente é o valor que vem por último em ordem alfabética.

Para fontes de dados de bancos de dados, o valor de cadeia de caracteres MAX é o mais alto na sequência de classificação definida pelo banco de dados para essa coluna.

Para datas

Para datas, MAX é a data mais recente. Se MAX for uma agregação, o resultado não terá uma hierarquia de datas. Se MAX for uma comparação, o resultado manterá a hierarquia de datas.

Como uma agregação

MAX(expression) é uma função agregada e retorna um único resultado agregado. Isso é exibido como AGG(expression) na visualização.

Como comparação

MAX(expr1, expr2) compara os dois valores e retorna um valor em nível de linha.

Consulte também MIN.

MIN

SintaxeMIN(expression) ou MIN(expr1, expr2)
SaídaMesmo tipo de dados do argumento ou NULL  se alguma parte do argumento for nula.
Definição

Retorna, no mínimo, dois argumentos, que devem ser do mesmo tipo de dados.

MIN também pode ser aplicada a um único campo em uma agregação.

Exemplo
MIN(4,7) = 4
MIN(#3/25/1986#, #2/20/2021#) = #3/25/1986#
MIN([Name]) = "Abebi"
Observações

Para cadeia de caracteres

MIN geralmente é o valor que vem primeiro em ordem alfabética.

Para fontes de dados de bancos de dados, o valor de cadeia de caracteres MIN é o mais baixo na sequência de classificação definida pelo banco de dados para essa coluna.

Para datas

Para datas, o MIN é a data mais antiga. Se MIN for uma agregação, o resultado não terá uma hierarquia de datas. Se MIN for uma comparação, o resultado manterá a hierarquia de datas.

Como uma agregação

MIN(expression) é uma função agregada e retorna um único resultado agregado. Isso é exibido como AGG(expression) na visualização.

Como comparação

MIN(expr1, expr2) compara os dois valores e retorna um valor em nível de linha.

Consulte também MAX.

MONTH

SintaxeMONTH(date)
SaídaInteiro
DefiniçãoRetorna o mês da <date> especificada como um inteiro.
Exemplo
MONTH(#1986-03-25#) = 3
ObservaçõesConsulte também DAY, WEEK, TRIMESTRE, YEAR e os equivalentes ISO

NOW

SintaxeNOW()
SaídaDatetime
DefiniçãoRetorna a data e a hora atuais do sistema local.
Exemplo
NOW() = 1986-03-25 1:08:21 PM
Observações

NOW não aceita um argumento.

Consulte também TODAY, um cálculo semelhante que retorna uma data em vez de uma data e hora.

Se a fonte de dados for uma conexão ativa, a data e a hora do sistema podem estar em outro fuso horário. Para obter mais informações sobre como abordar isso, consulte Base de dados de conhecimento.

TRIMESTRE

SintaxeQUARTER(date)
SaídaInteiro
DefiniçãoRetorna o trimestre da <date> especificada como um inteiro.
Exemplo
QUARTER(#1986-03-25#) = 1
ObservaçõesConsulte também DAY, WEEK, MONTH, YEAR e os equivalentes ISO

TODAY

SintaxeTODAY()
SaídaData
DefiniçãoRetorna a data atual do sistema local.
Exemplo
TODAY() = 1986-03-25
Observações

TODAY não aceita um argumento.

Consulte também NOW, um cálculo semelhante que retorna uma data e hora em vez de uma data.

Se a fonte de dados for uma conexão em tempo real, a data do sistema pode estar em outro fuso horário. Para obter mais informações sobre como abordar isso, consulte Base de dados de conhecimento.

WEEK

SintaxeWEEK(date)
SaídaInteiro
DefiniçãoRetorna a semana da <date> especificada como um inteiro.
Exemplo
WEEK(#1986-03-25#) = 13
ObservaçõesConsulte também DAY, MONTH, TRIMESTRE, YEAR e os equivalentes ISO

YEAR

SintaxeYEAR(date)
SaídaInteiro
DefiniçãoRetorna o ano da <date> especificada como um inteiro.
Exemplo
YEAR(#1986-03-25#) = 1,986
ObservaçõesConsulte também DAY, WEEK, MONTH, TRIMESTRE e os equivalentes ISO

date_part

Muitas funções de data no Tableau aceitam o argumento date_part, que é uma constante de cadeia de caracteres que informa à função qual parte de uma data deve ser considerada, como dia, semana, trimestre, etc. O valores válidos de date_part que você pode usar são:

date_partValores
'year'Ano de quatro dígitos
'quarter'1-4
'month'1-12 ou "January", "February" e assim por diante
'dayofyear'Dia do ano; 1 de janeiro é 1, 1 de fevereiro é 32 etc.
'day'1-31
'weekday'1-7 ou "Sunday", "Monday" e assim por diante
'week'1-52
'hour'0-23
'minute'0-59
'second'0-60
'iso-year'Ano de ISO 8601 com quatro dígitos
'iso-quarter'1-4
'iso-week'1-52, o início da semana é sempre segunda-feira
'iso-weekday'1-7, o início da semana é sempre segunda-feira

O parâmetro [start_of_week]

Algumas funções possuem o parâmetro opcional [start_of_week]. O parâmetro start_of_week pode ser usado para especificar qual dia é considerado o primeiro dia da semana, como "Sunday" ou"Monday". Caso isso seja omitido, o início da semana é determinado pela fonte de dados. Consulte Propriedades de data para uma fonte de dados.

Para os exemplos abaixo, 22 de setembro é um domingo e 24 de setembro é uma terça-feira. A função DATEDIFF está sendo usada para calcular as semanas entre essas datas.

DATEDIFF('week', #2013-09-22#, #2013-09-24#, 'monday') = 1

  • Como start_of_week é 'monday', essas datas estão em semanas diferentes.

DATEDIFF('week', #2013-09-22#, #2013-09-24#, 'sunday') = 0

  • Como start_of_week é 'sunday', essas datas são na mesma semana.

O literal de data (#)

Os exemplos geralmente usam o símbolo de libra (#) com expressões de data. Esse é o literal de data, semelhante ao uso de aspas para strings de texto, e informa ao Tableau que o valor dentro dos símbolos é uma data.

Sem os literais de data, as datas podem ser interpretadas como vários outros tipos de dados. Por exemplo:

FormatoTipo de dadosValor
'March 25, 1986'Cadeia de caracteres'March 25, 1986'
#25/03/1986#Data#25/03/1986#
25/03/1986Decimal flutuante0.00006042
1986-03-25Inteiro1,958
25 de março de 1986 inválido

Para obter mais informações, consulte Sintaxe de expressão literal.

Criar um cálculo de data

Pratique a criação de um cálculo de data usando a fonte de dados de amostra Superstore.

  1. No Tableau Desktop, conecte-se à fonte de dados salva Sample-Superstore, incluída no Tableau.
  2. Abra uma planilha.
  3. No painel Dados, em Dimensões, arraste Data do pedido até a divisória Linhas.
  4. Na prateleira Linhas, clique no ícone mais (+) no campo YEAR(Order Date).

    QUARTER(Order Date) é adicionado à divisória Linhas e às atualizações da exibição.

  5. Na divisória Linhas, clique no ícone mais (+) no campo QUARTER(Order Date) para detalhar a MONTH(Order Date).

  6. Selecione Análise > Criar campo calculado.
  7. No editor de cálculo aberto, faça o seguinte:
    • Nomeie o campo calculado, Data do trimestre.
    • Insira a fórmula a seguir: DATETRUNC('quarter', [Order Date])
    • Ao terminar, clique em OK.

      O novo campo calculado de data aparece em Dimensões no painel Dados. Assim como os outros campos, é possível usá-lo em uma ou mais visualizações.

  8. No painel Dados, em Dimensões, arraste Data do trimestre para a divisória Linhas e coloque-a à direita de MONTH(Order Date). A visualização é atualizada com os valores de ano. Isso é porque o Tableau leva a data para o nível de detalhe mais alto.
  9. Na divisória Linhas, clique com o botão direito do mouse no campo YEAR(Quarter Date) e selecione Data exata.
  10. Na divisória Linhas, clique com o botão direito do mouse no campo YEAR(Quarter Date) e selecione Discreto.

    A visualização é atualizada com a data de trimestre exato para cada linha na tabela.

Agradecemos seu feedback!Seu feedback foi enviado. Obrigado!