V MariaDB, MICROSECOND() je vestavěná funkce data a času, která vrací mikrosekundovou část daného časového výrazu.
Přijímá jeden argument, což je čas, ze kterého chcete extrahovat mikrosekundy.
Sekundy jsou vráceny jako číslo v rozsahu 0 na 999999 .
Syntaxe
Syntaxe vypadá takto:
MICROSECOND(time)
Kde time je časový výraz pro získání mikrosekund.
Příklad
Zde je příklad:
SELECT MICROSECOND('10:30:45.123456'); Výsledek:
+--------------------------------+
| MICROSECOND('10:30:45.123456') |
+--------------------------------+
| 123456 |
+--------------------------------+ Následující časový výraz výslovně nezahrnuje mikrosekundy:
SELECT MICROSECOND('10:30:45'); Výsledek:
+-------------------------+
| MICROSECOND('10:30:45') |
+-------------------------+
| 0 |
+-------------------------+
Takže výsledek je 0 .
Hodnoty data a času
Funguje také s hodnotami datetime:
SELECT MICROSECOND('2030-02-01 10:30:45.123456'); Výsledek:
+-------------------------------------------+
| MICROSECOND('2030-02-01 10:30:45.123456') |
+-------------------------------------------+
| 123456 |
+-------------------------------------------+ Hodnoty data
Předání data bez času vrátí 0 , spolu s varováním.
Příklad:
SELECT MICROSECOND('2025-10-31'); Výsledek:
+---------------------------+
| MICROSECOND('2025-10-31') |
+---------------------------+
| 0 |
+---------------------------+
1 row in set, 1 warning (0.001 sec) Varování můžeme vidět spuštěním následujícího kódu:
SHOW WARNINGS; Výsledek:
+---------+------+----------------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '2025-10-31' | +---------+------+----------------------------------------------+
Aktuální datum
Můžeme předat NOW() jako argument datetime pro použití aktuálního času:
SELECT
NOW(6),
MICROSECOND(NOW(6)); Výsledek:
+----------------------------+---------------------+ | NOW(6) | MICROSECOND(NOW(6)) | +----------------------------+---------------------+ | 2021-05-16 14:41:09.098168 | 98168 | +----------------------------+---------------------+
V tomto případě jsem uvedl, že NOW() by měl vrátit zlomkovou přesnost 6 (což umožňuje vrátit mikrosekundy).
Tady je to opět s nižší přesností:
SELECT
NOW(3),
MICROSECOND(NOW(3)); Výsledek:
+-------------------------+---------------------+ | NOW(3) | MICROSECOND(NOW(3)) | +-------------------------+---------------------+ | 2021-05-16 14:42:35.831 | 831000 | +-------------------------+---------------------+
Neplatné argumenty
Při předání neplatného časového argumentu MICROSECOND() vrátí null :
SELECT MICROSECOND('10:75:00.123456'); Výsledek:
+--------------------------------+
| MICROSECOND('10:75:00.123456') |
+--------------------------------+
| NULL |
+--------------------------------+ Chybí argument
Volání MICROSECOND() s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:
SELECT MICROSECOND(); Výsledek:
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
A další příklad:
SELECT MICROSECOND('10:30:45.123', '06:30:45.123'); Výsledek:
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