Converte um valor de data do tipo INT ou VARCHAR para o tipo de dados DATE. Se você omitir o parâmetro format, a entrada deverá corresponder ao formato padrão yyyy-MM-dd.
Sintaxe
Date TO_DATE(INT time)
Date TO_DATE(VARCHAR date)
Date TO_DATE(VARCHAR date, VARCHAR format)
Parâmetros
| Parâmetro | Tipo de dados | Descrição |
|---|---|---|
time |
INT | Número de dias decorridos desde a época (epoch time) de 1º de janeiro de 1970, 00:00:00 UTC. Por exemplo, 200 resulta em 1970-07-20. Nota
Esse comportamento se aplica apenas ao Ververica Runtime (VVR) 8.0.6 e versões posteriores. Nas versões anteriores à 8.0.6, o sistema converte implicitamente o valor para STRING. |
date |
VARCHAR | String de data. O formato padrão é yyyy-MM-dd. Exemplo: '2017-09-15'. |
format |
VARCHAR | Padrão de formato de data personalizado. Exemplo: 'yyyyMMdd' ou 'MMddyyyy'. |
Observações de uso
-
O comportamento do parâmetro
time(INT) varia conforme a versão do VVR:VVR 8.0.6 e posterior:
timeé interpretado como o número de dias desde a época (1º de janeiro de 1970, 00:00:00 UTC).VVR anterior à 8.0.6:
timeé convertido implicitamente para STRING antes do processamento.
Se você omitir o parâmetro
formatem uma entrada VARCHAR, o sistema aplicará o formato padrãoyyyy-MM-dd. Caso os dados de source utilizem outro formato, como MySQL DATETIME (yyyy-MM-dd HH:mm:ss), especifique explicitamente o parâmetroformatcom o formato real. Caso contrário, a análise falhará e retornará um resultado incorreto, como1970-01-01.
Exemplos
Os exemplos a seguir utilizam a tabela T1 como fonte de dados.
Tabela T1
|
date1 (INT) |
date2 (VARCHAR) |
date3 (VARCHAR) |
date4 (VARCHAR) |
date5 (VARCHAR) |
|
200 |
2017-09-15 |
20170915 |
09152017 |
092017 |
Converter uma entrada INT
Passe um número inteiro que represente a quantidade de dias desde a época.
SELECT TO_DATE(date1) AS var1
FROM T1;
|
var1 (DATE) |
|
1970-07-20 (VVR 8.0.6 e posterior) |
|
0200-01-01 (VVR anterior à 8.0.6) |
Converter uma entrada VARCHAR usando o formato padrão
Se a entrada já estiver no formato yyyy-MM-dd, omita o parâmetro format.
SELECT TO_DATE(date2) AS var2
FROM T1;
|
var2 (DATE) |
|
2017-09-15 |
Converter uma entrada VARCHAR usando um formato personalizado
Forneça um padrão format correspondente à estrutura da string de entrada.
SELECT TO_DATE(date3, 'yyyyMMdd') AS var3,
TO_DATE(date4, 'MMddyyyy') AS var4,
TO_DATE(date5, 'MMyyyy') AS var5
FROM T1;
|
var3 (DATE) |
var4 (DATE) |
var5 (DATE) |
|
2017-09-15 |
2017-09-15 |
2017-09-01 |
Próximos passos
TO_TIMESTAMP_TZ: Converte um valor de data VARCHAR para TIMESTAMP com base em um fuso horário especificado.
DATE_ADD: Retorna uma data após adicionar um número específico de dias.