Mysql
 sql >> Base de données >  >> RDS >> Mysql

TIME_FORMAT() Exemples – MySQL

Dans MySQL, vous pouvez utiliser le TIME_FORMAT() fonction pour formater une valeur de temps.

Cette fonction fonctionne exactement comme le DATE_FORMAT() sauf que la valeur ne peut être formatée qu'en heures, minutes, secondes et microsecondes.

Consultez le tableau au bas de cet article pour obtenir une liste des spécificateurs de format pouvant être utilisés avec cette fonction.

Syntaxe

La syntaxe ressemble à ceci :

TIME_FORMAT(time,format)

time est la valeur de temps que vous voulez formater, et format est la chaîne de format (cela détermine comment la valeur de temps est réellement formatée).

Exemple 1 - Utilisation de base

Voici un exemple pour illustrer.

SELECT TIME_FORMAT('14:35:27', '%r') AS 'Result';

Résultat :

+-------------+
| Result      |
+-------------+
| 02:35:27 PM |
+-------------+

Cet exemple utilise le %r spécificateur de format, qui formate l'heure au format 12 heures (hh:mm:ss suivi de AM ou PM).

Exemple 2 - Formatage plus spécifique

Si l'utilisation d'un spécificateur de format plus général comme dans l'exemple précédent ne convient pas, il existe divers autres spécificateurs de format qui peuvent vous aider à créer le format dont vous avez besoin.

Par exemple, si vous aimez le format précédent, mais que vous ne voulez pas que les secondes soient renvoyées, vous pouvez faire ceci :

SELECT TIME_FORMAT('14:35:27', '%h:%i %p') AS 'Result';

Résultat :

+----------+
| Result   |
+----------+
| 02:35 PM |
+----------+

Exemple 3 – Heure de 24 heures

Il existe également des spécificateurs de format pour 24 heures. Voici le moyen le plus simple de formater l'heure au format 24 heures.

SELECT TIME_FORMAT('14:35:27', '%T') AS 'Result';

Résultat :

+----------+
| Result   |
+----------+
| 14:35:27 |
+----------+

Exemple 4 – Microsecondes

Voici un exemple qui inclut la fraction de seconde dans le résultat :

SELECT TIME_FORMAT('14:35:27', '%H:%i:%s.%f') AS 'Result';

Résultat :

+-----------------+
| Result          |
+-----------------+
| 14:35:27.000000 |
+-----------------+

Bien entendu, nous pouvons également inclure des microsecondes dans la valeur de temps initiale :

SELECT TIME_FORMAT('14:35:27.123456', '%H:%i:%s.%f') AS 'Result';

Résultat :

+-----------------+
| Result          |
+-----------------+
| 14:35:27.123456 |
+-----------------+

Exemple 5 - Temps écoulé

Le type de données de temps n'est pas limité au format 24 heures. Il peut également être utilisé pour représenter le temps écoulé. Lorsque vous utilisez cette fonction pour le temps écoulé, vous devez savoir comment les spécificateurs de format d'heure fonctionnent avec des valeurs de temps en dehors de la plage de 0 à 23.

La documentation MySQL indique ce qui suit :

Si la valeur de l'heure contient une partie d'heure supérieure à 23 , le %H et %k les spécificateurs de format d'heure produisent une valeur supérieure à la plage habituelle de 0..23 . Les autres spécificateurs de format d'heure produisent la valeur d'heure modulo 12 .

Voici un exemple pour illustrer :

SELECT 
    TIME_FORMAT('24:00:00', '%H %k %h %I %l') AS '24',
    TIME_FORMAT('48:00:00', '%H %k %h %I %l') AS '48',
    TIME_FORMAT('100:00:00', '%H %k %h %I %l') AS '100',
    TIME_FORMAT('500:00:00', '%H %k %h %I %l') AS '500';

Résultat :

+----------------+----------------+-----------------+-----------------+
| 24             | 48             | 100             | 500             |
+----------------+----------------+-----------------+-----------------+
| 24 24 12 12 12 | 48 48 12 12 12 | 100 100 04 04 4 | 500 500 08 08 8 |
+----------------+----------------+-----------------+-----------------+

Spécificateurs de format

Les spécificateurs suivants peuvent être utilisés pour spécifier le format de retour. Il s'agit d'un sous-ensemble de ceux disponibles avec le DATE_FORMAT() une fonction. La valeur de format doit commencer par un signe de pourcentage (% ).

Spécificateur Description
%f Microsecondes (000000 ..999999 )
%H Heure (00 ..23 )
%h Heure (01 ..12 )
%I Heure (01 ..12 )
%i Minutes, numérique (00 ..59 )
%k Heure (0 ..23 )
%l Heure (1 ..12 )
%p AM ou PM
%r Heure, 12 heures (hh:mm:ss suivi de AM ou PM )
%S Secondes (00 ..59 )
%s Secondes (00 ..59 )
%T Heure, 24 heures (hh:mm:ss )
%% Un % littéral personnage