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:
- Formatar como uma data é exibida em uma visualização: Formatos de data personalizados
- Definir as propriedades de data padrão: Propriedades de data para uma fonte de dados.
- Trabalhar com datas fiscais: Datas fiscais
- Usar o calendário ISO-8601: Calendário ISO-8601 baseado em semana
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.
Sintaxe | DATE(expression) |
Saída | Data |
Definição | Retorna 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.
Sintaxe | DATEADD(date_part, interval, date) |
Saída | Data |
Definição | Retorna 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ções | Oferece suporte às datas de ISO 8601. |
DATEDIFF
Retorna o número de partes da data (semanas, anos etc.) entre duas datas.
Sintaxe | DATEDIFF(date_part, date1, date2, [start_of_week]) |
Saída | Inteiro |
Definição | Retorna 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ções | Oferece suporte às datas de ISO 8601. |
DATENAME
Retorna o nome da parte de data especificada como uma cadeia de caracteres discreta.
Sintaxe | DATENAME(date_part, date, [start_of_week]) |
Saída | Cadeia de caracteres |
Definição | Retorna 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.
Sintaxe | DATEPARSE(date_format, [date_string]) |
Saída | Data |
Definição | O 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.
Sintaxe | DATEPART(date_part, date, [start_of_week]) |
Saída | Inteiro |
Definição | Retorna 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.
Sintaxe | DATETRUNC(date_part, date, [start_of_week]) |
Saída | Data |
Definição | Trunca 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 |
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, |
DAY
Retorna o dia do mês (1 a 31) especificada como um inteiro.
Sintaxe | DAY(date) |
Saída | Inteiro |
Definição | Retorna o dia da data especificada como um inteiro. |
Exemplo | Day(#September 22, 2018#) = 22 |
Observações | Veja também WEEK, MONTH, QUARTER, YEAR e os equivalentes ISO |
ISDATE
Verifica se a cadeia de caracteres é um formato de data válido.
Sintaxe | ISDATE(string) |
Saída | Booleano |
Definição | Retornará true se uma determinada cadeia de caracteres for uma data válida. |
Exemplo | ISDATE(09/22/2018) = true ISDATE(22SEP18) = false |
Observações | O 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
Sintaxe | MAKEDATE(year, month, day) |
Saída | Data |
Definição | Retorna 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 |
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
Sintaxe | MAKEDATETIME(date, time) |
Saída | Datetime |
Definição | Retorna 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
Sintaxe | MAKETIME(hour, minute, second) |
Saída | Datetime |
Definição | Retorna 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
Sintaxe | MAX(expression) ou MAX(expr1, expr2) |
Saída | Data (ver notas) |
Definição | MAX é 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 |
Retorna Null se algum argumento for Null. |
MIN
Sintaxe | MIN(expression) ou MIN(expr1, expr2) |
Saída | Data (ver notas) |
Definição | MIN é 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 |
Retorna Null se algum argumento for Null. |
MONTH
Sintaxe | MONTH(date) |
Saída | Inteiro |
Definição | Retorna o mês da data especificada como um inteiro. |
Exemplo | MONTH(#1986-03-25#) = 3 |
Observações | Consulte também DAY, WEEK, QUARTER, YEAR e os equivalentes ISO. |
NOW
Sintaxe | NOW() |
Saída | Datetime |
Definição | Retorna 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
Sintaxe | QUARTER(date) |
Saída | Inteiro |
Definição | Retorna o trimestre da data especificada como um inteiro. |
Exemplo | QUARTER(#1986-03-25#) = 1 |
Observações | Consulte também DAY, WEEK, MONTH, YEAR e os equivalentes ISO. |
TODAY
Sintaxe | TODAY() |
Saída | Data |
Definição | Retorna 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
Sintaxe | WEEK(date) |
Saída | Inteiro |
Definição | Retorna a semana da data especificada como um inteiro. |
Exemplo | WEEK(#1986-03-25#) = 13 |
Observações | Consulte também DAY, MONTH, QUARTER, YEAR e os equivalentes ISO. |
YEAR
Sintaxe | YEAR(date) |
Saída | Inteiro |
Definição | Retorna o ano da data especificada como um inteiro. |
Exemplo | YEAR(#1986-03-25#) = 1,986 |
Observações | Consulte também DAY, WEEK, MONTH, QUARTER e os equivalentes ISO. |
ISOQUARTER
Sintaxe | ISOQUARTER(date) |
Saída | Inteiro |
Definição | Retorna o trimestre baseado em semana ISO8601 de uma data especificada como um inteiro. |
Exemplo | ISOQUARTER(#1986-03-25#) = 1 |
Observações | Consulte também ISOWEEK, ISOWEEKDAY, ISOYEAR e os equivalentes não ISO. |
ISOWEEK
Sintaxe | ISOWEEK(date) |
Saída | Inteiro |
Definição | Retorna a semana baseada em semana ISO8601 especificada como um inteiro. |
Exemplo | ISOWEEK(#1986-03-25#) = 13 |
Observações | Consulte também ISOWEEKDAY, ISOQUARTER, ISOYEAR e os equivalentes não ISO. |
ISOWEEKDAY
Sintaxe | ISOWEEKDAY(date) |
Saída | Inteiro |
Definição | Retorna o dia da semana baseado em semana ISO8601 da data especificada como um inteiro. |
Exemplo | ISOWEEKDAY(#1986-03-25#) = 2 |
Observações | Consulte também ISOWEEK, ISOQUARTER, ISOYEAR e os equivalentes não ISO |
ISOYEAR
Sintaxe | ISOYEAR(date) |
Saída | Inteiro |
Definição | Retorna o ano baseado em semana ISO8601 de uma data especificada como um inteiro. |
Exemplo | ISOYEAR(#1986-03-25#) = 1,986 |
Observações | Consulte 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_part | Valores |
---|---|
'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:
Formato | Tipo de dados | Valor |
'March 25, 1986' | Cadeia de caracteres | 'March 25, 1986' |
#25/03/1986# | Data | #25/03/1986# |
25/03/1986 | Decimal flutuante | 0.00006042 |
1986-03-25 | Inteiro | 1,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.
- No Tableau Desktop, conecte-se à fonte de dados salva Sample-Superstore, incluída no Tableau.
- Abra uma planilha.
- No painel Dados, em Dimensões, arraste Data do pedido até a divisória Linhas.
- 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.
- Na divisória Linhas, clique no ícone mais (+) no campo QUARTER(Order Date) para detalhar a MONTH(Order Date).
- Selecione Análise > Criar campo calculado.
- 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.
- 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.
- Na divisória Linhas, clique com o botão direito do mouse no campo YEAR(Quarter Date) e selecione Data exata.
- 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.