I MariaDB, MICROSECOND() är en inbyggd datum- och tidsfunktion som returnerar mikrosekundersdelen av ett givet tidsuttryck.
Den accepterar ett argument, vilket är tiden du vill extrahera mikrosekunderna från.
Sekunderna returneras som ett tal i intervallet 0 till 999999 .
Syntax
Syntaxen ser ut så här:
MICROSECOND(time)
Där time är tidsuttrycket att hämta mikrosekunderna från.
Exempel
Här är ett exempel:
SELECT MICROSECOND('10:30:45.123456'); Resultat:
+--------------------------------+
| MICROSECOND('10:30:45.123456') |
+--------------------------------+
| 123456 |
+--------------------------------+ Följande tidsuttryck inkluderar inte uttryckligen mikrosekunder:
SELECT MICROSECOND('10:30:45'); Resultat:
+-------------------------+
| MICROSECOND('10:30:45') |
+-------------------------+
| 0 |
+-------------------------+
Så resultatet är 0 .
Datetime-värden
Det fungerar också med datetime-värden:
SELECT MICROSECOND('2030-02-01 10:30:45.123456'); Resultat:
+-------------------------------------------+
| MICROSECOND('2030-02-01 10:30:45.123456') |
+-------------------------------------------+
| 123456 |
+-------------------------------------------+ Datumvärden
Att passera ett datum utan tid returnerar 0 , tillsammans med en varning.
Exempel:
SELECT MICROSECOND('2025-10-31'); Resultat:
+---------------------------+
| MICROSECOND('2025-10-31') |
+---------------------------+
| 0 |
+---------------------------+
1 row in set, 1 warning (0.001 sec) Vi kan se varningen genom att köra följande kod:
SHOW WARNINGS; Resultat:
+---------+------+----------------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '2025-10-31' | +---------+------+----------------------------------------------+
Aktuellt datum
Vi kan skicka NOW() som datetime-argument för att använda den aktuella tiden:
SELECT
NOW(6),
MICROSECOND(NOW(6)); Resultat:
+----------------------------+---------------------+ | NOW(6) | MICROSECOND(NOW(6)) | +----------------------------+---------------------+ | 2021-05-16 14:41:09.098168 | 98168 | +----------------------------+---------------------+
I det här fallet specificerade jag att NOW() bör returnera en bråkdelprecision av 6 (vilket gör att den returnerar mikrosekunder).
Här är den igen med lägre precision:
SELECT
NOW(3),
MICROSECOND(NOW(3)); Resultat:
+-------------------------+---------------------+ | NOW(3) | MICROSECOND(NOW(3)) | +-------------------------+---------------------+ | 2021-05-16 14:42:35.831 | 831000 | +-------------------------+---------------------+
Ogiltiga argument
När ett ogiltigt tidsargument skickades, MICROSECOND() returnerar null :
SELECT MICROSECOND('10:75:00.123456'); Resultat:
+--------------------------------+
| MICROSECOND('10:75:00.123456') |
+--------------------------------+
| NULL |
+--------------------------------+ Argument saknas
Anropar MICROSECOND() med fel antal argument, eller utan att skicka några argument, resulterar i ett fel:
SELECT MICROSECOND(); Resultat:
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
Och ett annat exempel:
SELECT MICROSECOND('10:30:45.123', '06:30:45.123'); Resultat:
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