La fonction DATE_FORMAT convertit un horodatage ou une chaîne de date en une chaîne selon un format spécifié.
Limites
DATE_FORMAT n'est pris en charge que dans Realtime Compute for Apache Flink utilisant Ververica Runtime (VVR) 3.0.0 ou version ultérieure.
Syntaxe
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)
Utilisez la signature à deux paramètres lorsque l'entrée est un TIMESTAMP ou une date VARCHAR au format par défaut (yyyy-MM-dd HH:mm:ss). Utilisez la signature à trois paramètres lorsque la date source VARCHAR utilise un format non standard.
Paramètres d'entrée
|
Paramètre |
Type de données |
Description |
|
|
TIMESTAMP |
L'horodatage source. |
|
|
VARCHAR |
La chaîne de date source. Format par défaut : |
|
|
VARCHAR |
Le format de la chaîne de date source. Facultatif. Par défaut : |
|
|
VARCHAR |
Le format cible pour la chaîne de sortie. |
Si l'un des paramètres d'entrée est NULL ou si une erreur d'analyse se produit, la fonction renvoie NULL.
Exemples
Référence rapide
-- 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
Exemple complet
Données de test
|
date1 (VARCHAR) |
datetime1 (VARCHAR) |
nullstr (VARCHAR) |
|
0915-2017 |
2017-09-15 00:00:00 |
NULL |
Instruction de test
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;
Résultat du test
|
var1 (VARCHAR) |
var2 (VARCHAR) |
var3 (VARCHAR) |
var4 (VARCHAR) |
var5 (VARCHAR) |
var6 (VARCHAR) |
|
170915 |
null |
null |
null |
20170915 |
170915 |
var2: NULL carnullstrest NULL.var3: NULL carto_format(nullstr) est NULL.var4: NULL carto_format(nullstr) est NULL.var5:date1(0915-2017) est analysé à l'aide defrom_format(MMdd-yyyy) et reformaté enyyyyMMdd.