In MariaDB, MICROSECOND()
is een ingebouwde datum- en tijdfunctie die het microsecondengedeelte van een bepaalde tijduitdrukking retourneert.
Het accepteert één argument, namelijk de tijd waaruit je de microseconden wilt extraheren.
De seconden worden geretourneerd als een getal in het bereik 0
tot 999999
.
Syntaxis
De syntaxis gaat als volgt:
MICROSECOND(time)
Waar time
is de tijduitdrukking om de microseconden uit te halen.
Voorbeeld
Hier is een voorbeeld:
SELECT MICROSECOND('10:30:45.123456');
Resultaat:
+--------------------------------+ | MICROSECOND('10:30:45.123456') | +--------------------------------+ | 123456 | +--------------------------------+
De volgende tijdexpressie omvat niet expliciet microseconden:
SELECT MICROSECOND('10:30:45');
Resultaat:
+-------------------------+ | MICROSECOND('10:30:45') | +-------------------------+ | 0 | +-------------------------+
Het resultaat is dus 0
.
Datum/tijd-waarden
Het werkt ook met datetime-waarden:
SELECT MICROSECOND('2030-02-01 10:30:45.123456');
Resultaat:
+-------------------------------------------+ | MICROSECOND('2030-02-01 10:30:45.123456') | +-------------------------------------------+ | 123456 | +-------------------------------------------+
Datumwaarden
Een datum doorgeven zonder een tijd geeft 0
, samen met een waarschuwing.
Voorbeeld:
SELECT MICROSECOND('2025-10-31');
Resultaat:
+---------------------------+ | MICROSECOND('2025-10-31') | +---------------------------+ | 0 | +---------------------------+ 1 row in set, 1 warning (0.001 sec)
We kunnen de waarschuwing zien door de volgende code uit te voeren:
SHOW WARNINGS;
Resultaat:
+---------+------+----------------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '2025-10-31' | +---------+------+----------------------------------------------+
Huidige datum
We kunnen NOW()
doorgeven als het datetime-argument om de huidige tijd te gebruiken:
SELECT
NOW(6),
MICROSECOND(NOW(6));
Resultaat:
+----------------------------+---------------------+ | NOW(6) | MICROSECOND(NOW(6)) | +----------------------------+---------------------+ | 2021-05-16 14:41:09.098168 | 98168 | +----------------------------+---------------------+
In dit geval heb ik gespecificeerd dat NOW()
moet een fractionele precisie van 6
return retourneren (waardoor het microseconden retourneert).
Hier is het weer met een lagere precisie:
SELECT
NOW(3),
MICROSECOND(NOW(3));
Resultaat:
+-------------------------+---------------------+ | NOW(3) | MICROSECOND(NOW(3)) | +-------------------------+---------------------+ | 2021-05-16 14:42:35.831 | 831000 | +-------------------------+---------------------+
Ongeldige argumenten
Wanneer een ongeldig tijdargument is doorgegeven, MICROSECOND()
retourneert null
:
SELECT MICROSECOND('10:75:00.123456');
Resultaat:
+--------------------------------+ | MICROSECOND('10:75:00.123456') | +--------------------------------+ | NULL | +--------------------------------+
Ontbrekend argument
MICROSECOND()
. aanroepen met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:
SELECT MICROSECOND();
Resultaat:
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
En nog een voorbeeld:
SELECT MICROSECOND('10:30:45.123', '06:30:45.123');
Resultaat:
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