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.

As função de data permitem manipular as datas na sua fonte de dados.

Funções 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:

DATE

Função de conversão de tipo que altera as expressões de string 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 expressão de data.
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, pois DATE 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 data especificada com o intervalo do número especificado, adicionado a date_part especificado daquela 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 da data 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 descreverá como o campo [string] é organizado. Devido à variedade de maneiras que o campo de cadeia de caracteres pode ser ordenado, o date_format deve ter correspondência exata. Para obter uma explicação completa, consulte Converter um campo em um campo de data.
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 da data 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 data 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(‘week’, #9/22/2018#) = #9/16/2018# 

(domingo da semana contendo 22/09/2018)

DATETRUNC(‘iso-week’, #9/22/2018#) = #9/17/2018#      

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

DATETRUNC(month, #9/22/2018#) = #9/1/2018#      

(o primeiro dia do mês contendo 9/22/2018)

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

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

DATETRUNC(‘week’, #9/22/2018#) = #1/1/2018#      

(o primeiro dia do ano 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 usaria DATETRUNC para, por exemplo, parar de mostrar a hora de um campo de data e hora em uma visualização. Se você quiser truncar a exibição de uma data em vez de arredondar sua precisão, ajuste a formatação.

Por exemplo, DATETRUNC('day', #5/17/2022 3:12:48 PM#), se mostrado na visualização ao segundo, seria exibido como 5/17/2022 12:00:00 AM.

DAY

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

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

ISDATE

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

SintaxeISDATE(string)
SaídaBooleano
DefiniçãoRetornará true se uma determinada cadeia de caracteres 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.

MAKEDATE

SintaxeMAKEDATE(year, month, day)
SaídaData
DefiniçãoRetorna um valor de data composto por um ano, mês e dia específicos.
Exemplo
MAKEDATE(1986,3,25) = #1986-03-25#

Observe que 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.

Observações

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 data e hora. 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 uma hora, minuto e segundo específicos.
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 data e hora, a saída é aa 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ídaData (ver notas)
DefiniçãoMAX é normalmente aplicado a números, mas também funciona em datas. Retorna o máximo (mais recente) de um campo de data ou duas datas.
Exemplo
MAX(#Sept 22, 2018#, #Feb 20, 2021#) = #Feb 20, 2021#
MAX([Ship date])
Observações

MAX(expression) é tratado como uma função agregada e retorna um único resultado agregado. Isso será exibido como AGG([calculation name]) na visualização e não terá uma hierarquia de datas.

MAX(expr1, expr2) compara os dois valores e retorna um valor em nível de linha. Para datas, esse valor será uma data e os resultados manterão a hierarquia de datas.

Retorna Null se algum argumento for Null.

MIN

SintaxeMIN(expression) ou MIN(expr1, expr2)
SaídaData (ver notas)
DefiniçãoMIN é normalmente aplicado a números, mas também funciona em datas. Metorna o mínimo (mais anterior) de um campo de data ou duas datas.
Exemplo
MIN(#Sept 22, 2018#, #Feb 20, 2021#) = #Sept 22, 2018#
MIN(Ship date])
Observações

MIN(expression) é tratado como uma função agregada e retorna um único resultado agregado. Isso será exibido como AGG([calculation name]) na visualização e não terá uma hierarquia de datas.

MIN(expr1, expr2) compara os dois valores e retorna um valor em nível de linha. Para datas, esse valor será uma data e os resultados manterão a hierarquia de datas.

Retorna Null se algum argumento for Null.

MONTH

SintaxeMONTH(date)
SaídaInteiro
DefiniçãoRetorna o mês da data especificada como um inteiro.
Exemplo
MONTH(#1986-03-25#) = 3
ObservaçõesConsulte também DAY, WEEK, QUARTER, 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 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 data 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 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.

SEMANA

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

YEAR

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

ISOQUARTER

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

ISOWEEK

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

ISOWEEKDAY

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

ISOYEAR

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

O argumento 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.

Os valores date_part válidos 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!