В MariaDB, MICROSECOND() е вградена функция за дата и час, която връща микросекундната част от даден времеви израз.
Той приема един аргумент, който е времето, от което искате да извлечете микросекундите.
Секундите се връщат като число в диапазона 0 до 999999 .
Синтаксис
Синтаксисът е така:
MICROSECOND(time)
Където time е изразът за време, от който се получават микросекундите.
Пример
Ето един пример:
SELECT MICROSECOND('10:30:45.123456'); Резултат:
+--------------------------------+
| MICROSECOND('10:30:45.123456') |
+--------------------------------+
| 123456 |
+--------------------------------+ Следният израз за време не включва изрично микросекунди:
SELECT MICROSECOND('10:30:45'); Резултат:
+-------------------------+
| MICROSECOND('10:30:45') |
+-------------------------+
| 0 |
+-------------------------+
Така че резултатът е 0 .
Стойности за дата и час
Работи и със стойности за дата и час:
SELECT MICROSECOND('2030-02-01 10:30:45.123456'); Резултат:
+-------------------------------------------+
| MICROSECOND('2030-02-01 10:30:45.123456') |
+-------------------------------------------+
| 123456 |
+-------------------------------------------+ Стойности за дата
Предаването на дата без час връща 0 , заедно с предупреждение.
Пример:
SELECT MICROSECOND('2025-10-31'); Резултат:
+---------------------------+
| MICROSECOND('2025-10-31') |
+---------------------------+
| 0 |
+---------------------------+
1 row in set, 1 warning (0.001 sec) Можем да видим предупреждението, като изпълним следния код:
SHOW WARNINGS; Резултат:
+---------+------+----------------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '2025-10-31' | +---------+------+----------------------------------------------+
Текуща дата
Можем да предадем NOW() като аргумент datetime за използване на текущото време:
SELECT
NOW(6),
MICROSECOND(NOW(6)); Резултат:
+----------------------------+---------------------+ | NOW(6) | MICROSECOND(NOW(6)) | +----------------------------+---------------------+ | 2021-05-16 14:41:09.098168 | 98168 | +----------------------------+---------------------+
В този случай посочих, че NOW() трябва да върне дробна точност от 6 (което го кара да връща микросекунди).
Ето го отново с по-ниска точност:
SELECT
NOW(3),
MICROSECOND(NOW(3)); Резултат:
+-------------------------+---------------------+ | NOW(3) | MICROSECOND(NOW(3)) | +-------------------------+---------------------+ | 2021-05-16 14:42:35.831 | 831000 | +-------------------------+---------------------+
Невалидни аргументи
Когато се подаде невалиден аргумент за време, MICROSECOND() връща null :
SELECT MICROSECOND('10:75:00.123456'); Резултат:
+--------------------------------+
| MICROSECOND('10:75:00.123456') |
+--------------------------------+
| NULL |
+--------------------------------+ Липсващ аргумент
Извикване на MICROSECOND() с грешен брой аргументи или без подаване на аргументи, води до грешка:
SELECT MICROSECOND(); Резултат:
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
И още един пример:
SELECT MICROSECOND('10:30:45.123', '06:30:45.123'); Резултат:
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