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:
- 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
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.
Sintaxe | DATE(expression) |
Saída | Data |
Definição | Retorna 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
|
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 <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çõ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> 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. 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 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> 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 |
As funções inversas, que separam datas e retornam o valor de suas partes, são |
Limitações do banco de dados |
|
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> 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 é Uma função inversa é |
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 <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 |
Observações | Oferece suporte às datas de ISO 8601. Você não deveria usar 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 <date> especificada como um inteiro. |
Exemplo | Day(#September 22, 2018#) = 22 |
Observações | Consulte também WEEK , MONTH , TRIMESTRE , YEAR e os equivalentes ISO. |
ISDATE
Verifica se a cadeia de caracteres é um formato de data válido.
Sintaxe | ISDATE(string) |
Saída | Booliano |
Definição | Retornará true se uma determinada <string> 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. |
ISOQUARTER
Sintaxe | ISOQUARTER(date) |
Saída | Inteiro |
Definição | Retorna o trimestre baseado em semana ISO8601 de uma <date> especificada como um inteiro. |
Exemplo | ISOQUARTER(#1986-03-25#) = 1 |
Observações | Consulte também ISOWEEK , ISOWEEKDAY , ISOYEAR , e não equivalentes ao ISO. |
ISOWEEK
Sintaxe | ISOWEEK(date) |
Saída | Inteiro |
Definição | Retorna a semana baseada em semana ISO8601 especificada de <date> como um inteiro. |
Exemplo | ISOWEEK(#1986-03-25#) = 13 |
Observações | Consulte também ISOWEEKDAY , ISOQUARTER , ISOYEAR , e não equivalentes ao ISO. |
ISOWEEKDAY
Sintaxe | ISOWEEKDAY(date) |
Saída | Inteiro |
Definição | Retorna dia da semana baseado em semana ISO8601 de uma <date> especificada como um inteiro. |
Exemplo | ISOWEEKDAY(#1986-03-25#) = 2 |
Observações | Consulte também ISOWEEK , ISOQUARTER , ISOYEAR , e não equivalentes ao ISO. |
ISOYEAR
Sintaxe | ISOYEAR(date) |
Saída | Inteiro |
Definição | Retorna ano baseado em semana ISO8601 de uma <date> especificada como um inteiro. |
Exemplo | ISOYEAR(#1986-03-25#) = 1,986 |
Observações | Consulte também ISOWEEK , ISOWEEKDAY , ISOQUARTER , e não equivalentes ao ISO. |
MAKEDATE
Sintaxe | MAKEDATE(year, month, day) |
Saída | Data |
Definição | Retorna 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 Disponível para as Extrações de dados do Tableau. Verifique a disponibilidade em outras fontes de dados.
|
MAKEDATETIME
Sintaxe | MAKEDATETIME(date, time) |
Saída | Datetime |
Definição | Retorna 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
Sintaxe | MAKETIME(hour, minute, second) |
Saída | Datetime |
Definição | Retorna 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 |
MAX
Sintaxe | MAX(expression) ou MAX(expr1, expr2) |
Saída | Mesmo 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.
|
Exemplo | MAX(4,7) = 7 |
Observações | Para cadeia de caracteres
Para fontes de dados de bancos de dados, o valor de cadeia de caracteres Para datas Para datas, Como uma agregação
Como comparação
Consulte também |
MIN
Sintaxe | MIN(expression) ou MIN(expr1, expr2) |
Saída | Mesmo 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.
|
Exemplo | MIN(4,7) = 4 |
Observações | Para cadeia de caracteres
Para fontes de dados de bancos de dados, o valor de cadeia de caracteres Para datas Para datas, o Como uma agregação
Como comparação
Consulte também |
MONTH
Sintaxe | MONTH(date) |
Saída | Inteiro |
Definição | Retorna o mês da <date> especificada como um inteiro. |
Exemplo | MONTH(#1986-03-25#) = 3 |
Observações | Consulte também DAY , WEEK , TRIMESTRE , 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 |
Consulte também 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 <date> 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 |
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
Sintaxe | WEEK(date) |
Saída | Inteiro |
Definição | Retorna a semana da <date> especificada como um inteiro. |
Exemplo | WEEK(#1986-03-25#) = 13 |
Observações | Consulte também DAY , MONTH , TRIMESTRE , YEAR e os equivalentes ISO |
YEAR
Sintaxe | YEAR(date) |
Saída | Inteiro |
Definição | Retorna o ano da <date> especificada como um inteiro. |
Exemplo | YEAR(#1986-03-25#) = 1,986 |
Observações | Consulte 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_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.