Vous trouverez ci-dessous 4 fonctions qui vous permettent de renvoyer la partie en microsecondes d'une valeur temporelle dans MariaDB.
Le MICROSECOND()
Fonction
Le MICROSECOND()
la fonction renvoie la partie en microsecondes d'un TIME
donné ou DATETIME
expression. Il accepte un argument, qui est le temps dont vous voulez extraire les microsecondes.
Exemple :
SELECT MICROSECOND('10:45:30.123456');
Résultat :
+---------------------------------------------+| MICROSECONDE('10:45:30.123456') |+--------------------------------+| 123456 |+---------------------------------------------+
TIME
les valeurs peuvent être comprises dans la plage '-838:59:59.999999'
à '838:59:59.999999'
.
TIME
les valeurs peuvent également être négatives. Dans de tels cas, MICROSECOND()
renvoie une valeur positive.
Voici une valeur de temps négative avec une partie en microsecondes :
SELECT MICROSECOND('-838:59:59.999999');
Résultat :
+------------------------------------------------+| MICROSECONDE('-838:59:59.999999') |+----------------------------------+| 999999 |+---------------------------------+
La partie microsecondes est extraite comme prévu.
Le EXTRACT()
Fonction
Le EXTRACT()
La fonction vous permet d'extraire une unité spécifiée de la valeur date/heure. Par conséquent, vous pouvez l'utiliser pour extraire les microsecondes (ainsi que d'autres unités) de la valeur temporelle.
Exemple :
SELECT EXTRACT(MICROSECOND FROM '10:45:30.123456');
Résultat :
+---------------------------------------------+ | EXTRAIT(MICROSECONDE DE '10:45:30.123456') |+----------------------------------------- ---------+| 123456 |+---------------------------------------------+Le
TIME_FORMAT()
FonctionLe
TIME_FORMAT()
La fonction vous permet de formater une valeur de temps basée sur une chaîne de format. La chaîne de format spécifie comment l'heure doit être formatée.Vous pouvez donc utiliser cette fonction pour renvoyer les microsecondes (ainsi que les heures, les minutes et les secondes) de l'heure.
Le
%f
le spécificateur de format renvoie les microsecondes :SELECT TIME_FORMAT('10:07:30.003456', '%f');
Résultat :
+--------------------------------------------------+| HEURE_FORMAT('10:07:30.003456', '%f') |+--------------------------------------------- -----+| 003456 |+------------------------------------------+Vous pouvez également utiliser le
$s
ou$S
spécificateur de format pour renvoyer la partie des secondes :SELECT TIME_FORMAT('10:07:30.123456', '%s') AS "Seconds", TIME_FORMAT('10:07:30.123456', '%f') AS "Microseconds", TIME_FORMAT('10:07:30.123456', '%s.%f') AS "Both";
Résultat :
+---------+--------------+-----------+| Secondes | Microsecondes | Les deux |+---------+-------------+-----------+| 30 | 123456 | 30.123456 |+---------+---------------------+------------+Le
TIME_FORMAT()
la fonction accepte un sous-ensemble des chaînes de format qui peuvent être utilisées avec leDATE_FORMAT()
une fonction. Voir Chaînes de format MariaDB pour une liste complète des chaînes/spécificateurs de format pouvant être utilisés avecDATE_FORMAT()
. LeTIME_FORMAT()
La fonction accepte uniquement les spécificateurs de format pour les heures, les minutes et les secondes/sous-secondes. Tout autre spécificateur de format donnenull
ou0
être retourné.Le
DATE_FORMAT()
FonctionLe
DATE_FORMAT()
La fonction vous permet de formater une valeur date ou datetime en fonction d'une chaîne de format. La chaîne de format spécifie comment la date/heure doit être formatée.Nous pouvons donc utiliser les mêmes spécificateurs de format que nous avons utilisés avec le
TIME_FORMAT()
fonction dans l'exemple précédent. Cependant,DATE_FORMAT()
n'accepte pas unTIME
valeur, nous devrons donc passer unDATETIME
valeur.SELECT DATE_FORMAT('2023-01-01 10:07:30.007123', '%f');
Résultat :
+------------------------------------------------------------ ---+| DATE_FORMAT('2023-01-01 10:07:30.007123', '%f') |+---------------------------- ---------------------+| 007123 |+------------------------------------------------------------ --+Passer juste un
TIME
la valeur ne fonctionne pas avec cette fonction :SELECT DATE_FORMAT('10:07:30.007123', '%f');
Résultat :
+--------------------------------------------------+| DATE_FORMAT('10:07:30.007123', '%f') |+--------------------------------------------- -----+| NULL |+--------------------------------------------------+1 ligne dans l'ensemble, 1 avertissement ( 0,003 s)Voyons l'avertissement :
SHOW WARNINGS;
Résultat :
+---------+------+---------------------------------- ----------------+| Niveau | Codage | Message |+---------+------+------------------------------ ---------------+| Avertissement | 1292 | Valeur datetime incorrecte :'10:07:30.007123' |+---------+------+-------------------- --------------------+