Dans MariaDB, MICROSECOND()
est une fonction de date et d'heure intégrée qui renvoie la partie en microsecondes d'une expression de temps donnée.
Il accepte un argument, qui est le temps dont vous voulez extraire les microsecondes.
Les secondes sont renvoyées sous la forme d'un nombre dans la plage 0
à 999999
.
Syntaxe
La syntaxe ressemble à ceci :
MICROSECOND(time)
Où time
est l'expression de temps à partir de laquelle obtenir les microsecondes.
Exemple
Voici un exemple :
SELECT MICROSECOND('10:30:45.123456');
Résultat :
+--------------------------------+ | MICROSECOND('10:30:45.123456') | +--------------------------------+ | 123456 | +--------------------------------+
L'expression de temps suivante n'inclut pas explicitement les microsecondes :
SELECT MICROSECOND('10:30:45');
Résultat :
+-------------------------+ | MICROSECOND('10:30:45') | +-------------------------+ | 0 | +-------------------------+
Donc le résultat est 0
.
Valeurs DateHeure
Cela fonctionne également avec les valeurs datetime :
SELECT MICROSECOND('2030-02-01 10:30:45.123456');
Résultat :
+-------------------------------------------+ | MICROSECOND('2030-02-01 10:30:45.123456') | +-------------------------------------------+ | 123456 | +-------------------------------------------+
Valeurs de date
Passer une date sans heure renvoie 0
, accompagné d'un avertissement.
Exemple :
SELECT MICROSECOND('2025-10-31');
Résultat :
+---------------------------+ | MICROSECOND('2025-10-31') | +---------------------------+ | 0 | +---------------------------+ 1 row in set, 1 warning (0.001 sec)
Nous pouvons voir l'avertissement en exécutant le code suivant :
SHOW WARNINGS;
Résultat :
+---------+------+----------------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '2025-10-31' | +---------+------+----------------------------------------------+
Date actuelle
Nous pouvons passer NOW()
comme argument datetime pour utiliser l'heure actuelle :
SELECT
NOW(6),
MICROSECOND(NOW(6));
Résultat :
+----------------------------+---------------------+ | NOW(6) | MICROSECOND(NOW(6)) | +----------------------------+---------------------+ | 2021-05-16 14:41:09.098168 | 98168 | +----------------------------+---------------------+
Dans ce cas, j'ai spécifié que NOW()
doit renvoyer une précision fractionnaire de 6
(ce qui le fait renvoyer des microsecondes).
Le revoici avec une précision moindre :
SELECT
NOW(3),
MICROSECOND(NOW(3));
Résultat :
+-------------------------+---------------------+ | NOW(3) | MICROSECOND(NOW(3)) | +-------------------------+---------------------+ | 2021-05-16 14:42:35.831 | 831000 | +-------------------------+---------------------+
Arguments invalides
Lorsqu'un argument de temps non valide est passé, MICROSECOND()
renvoie null
:
SELECT MICROSECOND('10:75:00.123456');
Résultat :
+--------------------------------+ | MICROSECOND('10:75:00.123456') | +--------------------------------+ | NULL | +--------------------------------+
Argument manquant
Appel de MICROSECOND()
avec le mauvais nombre d'arguments, ou sans passer d'arguments, génère une erreur :
SELECT MICROSECOND();
Résultat :
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
Et un autre exemple :
SELECT MICROSECOND('10:30:45.123', '06:30:45.123');
Résultat :
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '06:30:45.123')' at line 1