Dans MariaDB, TIME_FORMAT()
est une fonction de date et d'heure intégrée qui formate une valeur d'heure en fonction de la chaîne de format donnée.
Cela fonctionne de la même manière que le DATE_FORMAT()
fonction, sauf que la chaîne de format ne peut contenir que des spécificateurs de format pour les heures, les minutes et les secondes.
Il nécessite deux arguments ; l'heure et la chaîne de format.
Syntaxe
La syntaxe ressemble à ceci :
TIME_FORMAT(time,format)
Où time
est la valeur temporelle et le format
est la chaîne de format. Voir Chaînes de format MariaDB pour une liste des spécificateurs de format acceptables. Comme mentionné, seuls les spécificateurs de format pour les heures, les minutes et les secondes sont acceptés. Toutes les autres valeurs renvoient null
.
Exemple
Voici un exemple :
SELECT TIME_FORMAT('10:30:45', '%H %i %S');
Résultat :
+--------------------------------------------------+| HEURE_FORMAT('10:30:45', '%H %i %S') |+------------------------------------------ --------+| 10 30 45 |+--------------------------------------------------+
La voici à nouveau, mais cette fois nous fournissons une chaîne de format plus élaborée :
SELECT TIME_FORMAT(
'10:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result;
Résultat :
+--------------------------------------------------+| Résultat |+--------------------------------------------------+| 10 heures, 30 minutes et 45 secondes |+--------------------------------------------------+
Heures plus longues
TIME
les valeurs peuvent être comprises dans la plage '-838:59:59.999999'
à '838:59:59.999999'
.
Par conséquent, la portion horaire peut être bien supérieure à 23
:
SELECT TIME_FORMAT(
'810:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result;
Résultat :
+--------------------------------------------------+| Résultat |+---------------------------------------------------+| 810 heures, 30 minutes et 45 secondes |+---------------------------------------------------- +
Valeurs de temps négatives
Voici un exemple avec une valeur de temps négative :
SELECT TIME_FORMAT(
'-810:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result;
Résultat :
+---------------------------------------------+| Résultat |+---------------------------------------------+| -810 heures, 30 minutes et 45 secondes |+-------------------------------------------------- --+
Heures hors plage
Cependant, fournir une valeur de temps en dehors de la plage renverra la limite supérieure de cette plage, ainsi qu'un avertissement :
SELECT TIME_FORMAT(
'910:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result;
Résultat :
+--------------------------------------------------+| Résultat |+---------------------------------------------------+| 838 heures, 59 minutes et 59 secondes |+----------------------------------------------------- +1 ligne dans l'ensemble, 1 avertissement (0,003 s)
Vérifions l'avertissement :
SHOW WARNINGS;
Résultat :
+---------+------+---------------------------------- ----------------+| Niveau | Codage | Message |+---------+------+------------------------------ ---------------+| Avertissement | 1292 | Heure incorrecte tronquée :'910:30:45' |+---------+------+------- --------------------------+
Arguments invalides
Lorsqu'un argument invalide est passé, TIME_FORMAT()
renvoie null
avec un avertissement :
SELECT TIME_FORMAT('Homer', 'Simpson');
Résultat :
+---------------------------------------------+| TIME_FORMAT('Homère', 'Simpson') |+---------------------------------+| NULL |+---------------------------------+1 ligne dans l'ensemble, 1 avertissement (0,009 sec)Vérifiez l'avertissement :
SHOW WARNINGS;
Résultat :
+---------+------+---------------------------------- --+| Niveau | Codage | Message |+---------+------+------------------------------ -+| Avertissement | 1292 | Valeur de temps incorrecte :'Homer' |+---------+------+------------------------ -------+Chaîne de format non valide
La chaîne de format ne peut contenir que des spécificateurs de format pour les heures, les minutes et les secondes. Tout autre spécificateur de format donne
null
en cours de retour :SELECT TIME_FORMAT('10:30:45', '%M %W');
Résultat :
+------------------------------------------------+| TIME_FORMAT('10:30:45', '%M %W') |+------------------------------- ---+| NULL |+------------------------------------------------+Argument manquant
Appel de
TIME_FORMAT()
avec le mauvais nombre d'arguments, ou sans passer d'arguments, génère une erreur :SELECT TIME_FORMAT();
Résultat :
ERREUR 1582 (42000) :Nombre de paramètres incorrect dans l'appel à la fonction native 'TIME_FORMAT'Et un autre exemple :
SELECT TIME_FORMAT('10:09:10');
Résultat :
ERREUR 1582 (42000) :Nombre de paramètres incorrect dans l'appel à la fonction native 'TIME_FORMAT'