En MariaDB, MICROSECOND()
es una función de fecha y hora incorporada que devuelve la porción de microsegundos de una expresión de tiempo dada.
Acepta un argumento, que es el tiempo del que desea extraer los microsegundos.
Los segundos se devuelven como un número en el rango 0
a 999999
.
Sintaxis
La sintaxis es así:
MICROSECOND(time)
Donde time
es la expresión de tiempo para obtener los microsegundos.
Ejemplo
He aquí un ejemplo:
SELECT MICROSECOND('10:30:45.123456');
Resultado:
+--------------------------------+ | MICROSECOND('10:30:45.123456') | +--------------------------------+ | 123456 | +--------------------------------+
La siguiente expresión de tiempo no incluye microsegundos explícitamente:
SELECT MICROSECOND('10:30:45');
Resultado:
+-------------------------+ | MICROSECOND('10:30:45') | +-------------------------+ | 0 | +-------------------------+
Entonces el resultado es 0
.
Valores de fecha y hora
También funciona con valores de fecha y hora:
SELECT MICROSECOND('2030-02-01 10:30:45.123456');
Resultado:
+-------------------------------------------+ | MICROSECOND('2030-02-01 10:30:45.123456') | +-------------------------------------------+ | 123456 | +-------------------------------------------+
Valores de fecha
Pasar una fecha sin hora devuelve 0
, junto con una advertencia.
Ejemplo:
SELECT MICROSECOND('2025-10-31');
Resultado:
+---------------------------+ | MICROSECOND('2025-10-31') | +---------------------------+ | 0 | +---------------------------+ 1 row in set, 1 warning (0.001 sec)
Podemos ver la advertencia ejecutando el siguiente código:
SHOW WARNINGS;
Resultado:
+---------+------+----------------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '2025-10-31' | +---------+------+----------------------------------------------+
Fecha actual
Podemos pasar NOW()
como argumento de fecha y hora para usar la hora actual:
SELECT
NOW(6),
MICROSECOND(NOW(6));
Resultado:
+----------------------------+---------------------+ | NOW(6) | MICROSECOND(NOW(6)) | +----------------------------+---------------------+ | 2021-05-16 14:41:09.098168 | 98168 | +----------------------------+---------------------+
En este caso especifiqué que NOW()
debe devolver una precisión fraccionaria de 6
(lo que hace que devuelva microsegundos).
Aquí está de nuevo con menor precisión:
SELECT
NOW(3),
MICROSECOND(NOW(3));
Resultado:
+-------------------------+---------------------+ | NOW(3) | MICROSECOND(NOW(3)) | +-------------------------+---------------------+ | 2021-05-16 14:42:35.831 | 831000 | +-------------------------+---------------------+
Argumentos no válidos
Cuando se pasa un argumento de tiempo no válido, MICROSECOND()
devuelve null
:
SELECT MICROSECOND('10:75:00.123456');
Resultado:
+--------------------------------+ | MICROSECOND('10:75:00.123456') | +--------------------------------+ | NULL | +--------------------------------+
Argumento faltante
Llamando a MICROSECOND()
con el número incorrecto de argumentos, o sin pasar ningún argumento, da como resultado un error:
SELECT MICROSECOND();
Resultado:
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
Y otro ejemplo:
SELECT MICROSECOND('10:30:45.123', '06:30:45.123');
Resultado:
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