DATE_FORMAT converte um timestamp ou uma string de data em uma string no formato especificado.
Limites
O Realtime Compute for Apache Flink oferece suporte a DATE_FORMAT apenas com o Ververica Runtime (VVR) 3.0.0 ou posterior.
Sintaxe
VARCHAR DATE_FORMAT(TIMESTAMP time, VARCHAR to_format)
VARCHAR DATE_FORMAT(VARCHAR date, VARCHAR to_format)
VARCHAR DATE_FORMAT(VARCHAR date, VARCHAR from_format, VARCHAR to_format)
Use a assinatura de dois parâmetros quando a entrada for um TIMESTAMP ou uma data VARCHAR no formato padrão (yyyy-MM-dd HH:mm:ss). Use a assinatura de três parâmetros quando a data VARCHAR de origem estiver em um formato não padrão.
Parâmetros de entrada
|
Parâmetro |
Tipo de dados |
Descrição |
|
|
TIMESTAMP |
Timestamp de origem. |
|
|
VARCHAR |
String de data de origem. Formato padrão: |
|
|
VARCHAR |
Formato da string de data de origem. Opcional. Padrão: |
|
|
VARCHAR |
Formato de destino da string de saída. |
A função retorna NULL se algum parâmetro de entrada for NULL ou se ocorrer um erro de análise.
Exemplos
Referência rápida
-- Format a TIMESTAMP literal
SELECT DATE_FORMAT(TIMESTAMP '2017-09-15 23:00:00', 'yyMMdd');
-- Result: 170915
-- Reformat a date string with a non-default source format
SELECT DATE_FORMAT('0915-2017', 'MMdd-yyyy', 'yyyyMMdd');
-- Result: 20170915
Exemplo completo
Dados de teste
|
date1 (VARCHAR) |
datetime1 (VARCHAR) |
nullstr (VARCHAR) |
|
0915-2017 |
2017-09-15 00:00:00 |
NULL |
Instrução de teste
SELECT DATE_FORMAT(datetime1, 'yyMMdd') as var1,
DATE_FORMAT(nullstr, 'yyMMdd') as var2,
DATE_FORMAT(datetime1, nullstr) as var3,
DATE_FORMAT(date1, 'MMdd-yyyy', nullstr) as var4,
DATE_FORMAT(date1, 'MMdd-yyyy', 'yyyyMMdd') as var5,
DATE_FORMAT(TIMESTAMP '2017-09-15 23:00:00', 'yyMMdd') as var6
FROM T1;
Resultado do teste
|
var1 (VARCHAR) |
var2 (VARCHAR) |
var3 (VARCHAR) |
var4 (VARCHAR) |
var5 (VARCHAR) |
var6 (VARCHAR) |
|
170915 |
null |
null |
null |
20170915 |
170915 |
var2: NULL porquenullstré NULL.var3: NULL porqueto_format(nullstr) é NULL.var4: NULL porqueto_format(nullstr) é NULL.var5:date1(0915-2017) é analisado comfrom_format(MMdd-yyyy) e reformatado comoyyyyMMdd.