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

Fonctionnement de MICROSECOND() dans MariaDB

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)

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