Função DATEFORMAT

Formata um conjunto de valores de data/hora especificado de acordo com o formato de data especificado. Os valores de origem podem ser uma referência a uma coluna com valores de data/hora.
  • Se o valor Datetime inicial não incluir uma entrada válida para esta função, um valor ausente será retornado.
  • O Cloud Dataprep by TRIFACTA® INC. dá suporte a vários formatos para os campos de data e hora. Para saber mais sobre formatos de data compatíveis, consulte Tipo de dados de data e hora.
  • Você pode explorar os formatos de data/hora disponíveis na página "Transformer". Na lista suspensa de tipos de uma coluna, selecione Data/hora. Em seguida, selecione a categoria de formatação. Na lista suspensa exibida, você pode selecionar um formato específico. Quando esta etapa de transformação é adicionada à receita, você pode editá-la para ver como o formato é especificado no Wrangle.

Para saber mais informações sobre a formatação de tipos numéricos, consulte a Função NUMFORMAT.

Uso básico

derive type:single value: DATEFORMAT(MyDate, 'yyyy-MM-dd') as: 'dateformat_MyDate'

Saída: gera uma coluna dos valores válidos de data na coluna MyDate, convertida no formato ano-mês-dia.

Sintaxe

derive type:single value:DATEFORMAT(Datetime_col, date_format_string)

ArgumentoObrigatório?Tipo de dadosDescrição
Datetime_colSdata/horaNome da coluna com os valores de data a serem formatados
date_format_stringSstringLiteral de string que identifica o formato da data para aplicar ao valor

Para saber mais informações sobre os padrões de sintaxe, consulte as Observações sobre a sintaxe da documentação da linguagem.

datetime_col

Nome da coluna com os dados de data que precisam ser formatados.

  • Os valores ausentes nos dados de origem dessa função resultam em valores ausentes na saída.
  • Não há compatibilidade com colunas múltiplas e caracteres curinga.

Observações sobre o uso:

Obrigatório?Tipo de dadosValor de exemplo
SimData/horamyDate

date_format_string

Valor de string que indica o formato de data para aplicar aos valores de entrada.

O Cloud Dataprep by TRIFACTA INC. dá suporte a strings de formatação do Java, com algumas exceções.

OBSERVAÇÃO: se a plataforma não puder reconhecer a string de formato de data, o resultado gerado será escrito como um valor de string.

Para saber mais sobre formatos de data compatíveis, consulte Tipo de dados de data e hora.

  • Os valores ausentes nos dados de origem dessa função resultam em valores ausentes na saída.
  • Não há compatibilidade com colunas múltiplas e caracteres curinga.

Observações sobre o uso:

Obrigatório?Tipo de dadosValor de exemplo
SimString'MM/dd/yyyy'

Exemplos

Exemplo: como formatar valores de data

Este exemplo ilustra várias maneiras de escrever valores de data heterogêneos em Wrangle, incluindo o uso da função DATEFORMAT.

Origem:

O conjunto de dados inclui os seguintes valores de data fora de ordem.

MyDate
2/1/00 9:20
4/5/10 11:25
6/7/99 22:00
12/20/1894 15:45:00
13/7/1999 22:00:00

Transformação:

Quando esses dados são carregados no aplicativo, eles não são imediatamente reconhecidos como uma coluna de data/hora, porque a variação entre os dados complica a decisão sobre o formato da data apropriado. As três primeiras linhas podem estar em um formato consistente, mas as outras duas são problemáticas.

Você pode tentar alterar a coluna para um tipo de data/hora com um formato correspondente às três primeiras linhas. Você pode selecionar o formato apropriado na lista suspensa de tipos. Quando visualizada, a transformação tem a seguinte aparência:

OBSERVAÇÃO: não adicione essa transformação agora. Ela é usada estritamente para revisar os efeitos sobre a qualidade de dados.

settype col: MyDate type: 'Datetime','mm-dd-yy hh:mm:ss','mm*dd*yy*HH:MM'

Quando a coluna é reformatada, você deve notar que os dois últimos valores dela são incompatíveis. No histograma de coluna, você pode ver que os períodos incluem a data de 1999 na terceira linha, portanto a linha final deve funcionar como se fosse uma data válida.

O valor 1894 se parece com um outlier e pode ser removido:

delete row: MATCHES([MyDate], `12/20/1894`)

Para o restante da linha de 1999, você pode excluí-la ou usar as seguintes transformações para correspondê-la às outras linhas. Use a seguinte transformação para alterar o valor 13 de mês para 12:

replace col: MyDate on: `13/` with: '12\/' global: true

As duas transformações seguintes completam as etapas de limpeza:

replace col: MyDate on: `/1999` with: '\/99' global: true

replace col: MyDate on: `:#+:00` with: ':00' global: true

Se você aplicar a etapa de formatação original, todas as datas serão válidas:

settype col: MyDate type: 'Datetime','mm-dd-yy hh:mm:ss','mm*dd*yy*HH:MM'

Agora, a coluna de data/hora pode ser formatada conforme necessário, usando a função dateformat. A etapa seguinte gera uma nova coluna que contém as informações de ano, mês e dia como um único valor numérico:

derive type:single value:DATEFORMAT(MyDate, 'yyyyMMdd')

Resultados:

O conjunto de dados final deverá ser como o exibido abaixo:

MyDatedateformat_MyDate
2/1/00 9:2020000201
4/5/10 11:2520100405
6/7/99 22:0019990607
12/7/99 22:0019991207

Exemplo: outras variações de formatação de data

DescriçãoColuna TimestampTransformaçãoColuna newTimestamp
Data numérica, ano primeiro

2/15/16 13:26:58.123

3/12/99 2:45:21.456

11/21/11 23:02:18.000

derive type:single value:DATEFORMAT(Timestamp,'yyyy-MM-dd') as:'newTimestamp'

2016-02-15

1999-03-12

2011-11-21

Data numérica, estilo americano

2/15/16 13:26:58.123

3/12/99 2:45:21.456

11/21/11 23:02:18.000

derive type:single value:DATEFORMAT(Timestamp,'M/d/yy') as:'newTimestamp'

2/15/16

3/12/99

11/21/11

Data escrita por extenso

2/15/16 13:26:58.123

3/12/99 2:45:21.456

11/21/11 23:02:18.000

derive type:single value:DATEFORMAT(Timestamp,'MMMM dd, yyyy') as:'newTimestamp'

15 de fevereiro de 2016

12 de março de 1999

21 de novembro de 2011

Data abreviada,
incluindo dia da semana
abreviado

2/15/16 13:26:58.123

3/12/99 2:45:21.456

11/21/11 23:02:18.000

derive type:single value:DATEFORMAT(Timestamp,'EEE MMM dd, yyyy') as:'newTimestamp'

Seg 15 fev, 2016

Sex 12 mar, 1999

Seg 21 nov, 2011

Horário completo no formato 24 horas

2/15/16 13:26:58.123

3/12/99 2:45:21.456

11/21/11 23:02:18.000

derive type:single value:DATEFORMAT(Timestamp,'HH:mm:ss.SSS') as:'newTimestamp'

13:26:58.123

2:45:21.456

23:02:18.000

Horário no formato 12 horas com indicador AM/PM

2/15/16 13:26:58.123

3/12/99 2:45:21.456

11/21/11 23:02:18.000

derive type:single value:DATEFORMAT(Timestamp,'h:mm:ss a') as:'newTimestamp'

OBSERVAÇÃO: para essa função, o uso do indicador de horas em minúsculas (h ou hh) requer o uso do indicador AM/PM (a).

1:26:58 PM

2:45:21 AM

11:02:18 PM

Para saber mais sobre formatos de data compatíveis, consulte Tipo de dados de data e hora.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Google Cloud Dataprep
Precisa de ajuda? Acesse nossa página de suporte.