I MariaDB, MICROSECOND() er en indbygget dato- og tidsfunktion, der returnerer mikrosekunderdelen af et givet tidsudtryk.
Den accepterer ét argument, som er det tidspunkt, du vil udtrække mikrosekunderne fra.
Sekunderne returneres som et tal i området 0 til 999999 .
Syntaks
Syntaksen ser sådan ud:
MICROSECOND(time)
Hvor time er tidsudtrykket at få mikrosekunderne fra.
Eksempel
Her er et eksempel:
SELECT MICROSECOND('10:30:45.123456'); Resultat:
+--------------------------------+
| MICROSECOND('10:30:45.123456') |
+--------------------------------+
| 123456 |
+--------------------------------+ Følgende tidsudtryk inkluderer ikke eksplicit mikrosekunder:
SELECT MICROSECOND('10:30:45'); Resultat:
+-------------------------+
| MICROSECOND('10:30:45') |
+-------------------------+
| 0 |
+-------------------------+
Så resultatet er 0 .
Dato-tidsværdier
Det fungerer også med datetime-værdier:
SELECT MICROSECOND('2030-02-01 10:30:45.123456'); Resultat:
+-------------------------------------------+
| MICROSECOND('2030-02-01 10:30:45.123456') |
+-------------------------------------------+
| 123456 |
+-------------------------------------------+ Datoværdier
At passere en dato uden et tidspunkt returnerer 0 , sammen med en advarsel.
Eksempel:
SELECT MICROSECOND('2025-10-31'); Resultat:
+---------------------------+
| MICROSECOND('2025-10-31') |
+---------------------------+
| 0 |
+---------------------------+
1 row in set, 1 warning (0.001 sec) Vi kan se advarslen ved at køre følgende kode:
SHOW WARNINGS; Resultat:
+---------+------+----------------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '2025-10-31' | +---------+------+----------------------------------------------+
Aktuel dato
Vi kan sende NOW() som datetime-argument for at bruge det aktuelle klokkeslæt:
SELECT
NOW(6),
MICROSECOND(NOW(6)); Resultat:
+----------------------------+---------------------+ | NOW(6) | MICROSECOND(NOW(6)) | +----------------------------+---------------------+ | 2021-05-16 14:41:09.098168 | 98168 | +----------------------------+---------------------+
I dette tilfælde specificerede jeg det NOW() skal returnere en brøkpræcision på 6 (hvilket får den til at returnere mikrosekunder).
Her er den igen med en lavere præcision:
SELECT
NOW(3),
MICROSECOND(NOW(3)); Resultat:
+-------------------------+---------------------+ | NOW(3) | MICROSECOND(NOW(3)) | +-------------------------+---------------------+ | 2021-05-16 14:42:35.831 | 831000 | +-------------------------+---------------------+
Ugyldige argumenter
Når et ugyldigt tidsargument sendes, MICROSECOND() returnerer null :
SELECT MICROSECOND('10:75:00.123456'); Resultat:
+--------------------------------+
| MICROSECOND('10:75:00.123456') |
+--------------------------------+
| NULL |
+--------------------------------+ Manglende argument
Kalder MICROSECOND() med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:
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
Og endnu et eksempel:
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