In MariaDB, MICROSECOND()
ist eine integrierte Datums- und Zeitfunktion, die den Mikrosekundenanteil eines gegebenen Zeitausdrucks zurückgibt.
Es akzeptiert ein Argument, nämlich die Zeit, aus der Sie die Mikrosekunden extrahieren möchten.
Die Sekunden werden als Zahl im Bereich 0
zurückgegeben bis 999999
.
Syntax
Die Syntax sieht so aus:
MICROSECOND(time)
Wo time
ist der Zeitausdruck, aus dem die Mikrosekunden abgerufen werden.
Beispiel
Hier ist ein Beispiel:
SELECT MICROSECOND('10:30:45.123456');
Ergebnis:
+--------------------------------+ | MICROSECOND('10:30:45.123456') | +--------------------------------+ | 123456 | +--------------------------------+
Der folgende Zeitausdruck enthält Mikrosekunden nicht explizit:
SELECT MICROSECOND('10:30:45');
Ergebnis:
+-------------------------+ | MICROSECOND('10:30:45') | +-------------------------+ | 0 | +-------------------------+
Das Ergebnis ist also 0
.
Datum/Uhrzeit-Werte
Es funktioniert auch mit datetime-Werten:
SELECT MICROSECOND('2030-02-01 10:30:45.123456');
Ergebnis:
+-------------------------------------------+ | MICROSECOND('2030-02-01 10:30:45.123456') | +-------------------------------------------+ | 123456 | +-------------------------------------------+
Datumswerte
Das Übergeben eines Datums ohne Uhrzeit gibt 0
zurück , zusammen mit einer Warnung.
Beispiel:
SELECT MICROSECOND('2025-10-31');
Ergebnis:
+---------------------------+ | MICROSECOND('2025-10-31') | +---------------------------+ | 0 | +---------------------------+ 1 row in set, 1 warning (0.001 sec)
Wir können die Warnung sehen, indem wir den folgenden Code ausführen:
SHOW WARNINGS;
Ergebnis:
+---------+------+----------------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '2025-10-31' | +---------+------+----------------------------------------------+
Aktuelles Datum
Wir können NOW()
übergeben als datetime-Argument, um die aktuelle Uhrzeit zu verwenden:
SELECT
NOW(6),
MICROSECOND(NOW(6));
Ergebnis:
+----------------------------+---------------------+ | NOW(6) | MICROSECOND(NOW(6)) | +----------------------------+---------------------+ | 2021-05-16 14:41:09.098168 | 98168 | +----------------------------+---------------------+
In diesem Fall habe ich NOW()
angegeben sollte eine gebrochene Genauigkeit von 6
zurückgeben (wodurch Mikrosekunden zurückgegeben werden).
Hier noch einmal mit geringerer Genauigkeit:
SELECT
NOW(3),
MICROSECOND(NOW(3));
Ergebnis:
+-------------------------+---------------------+ | NOW(3) | MICROSECOND(NOW(3)) | +-------------------------+---------------------+ | 2021-05-16 14:42:35.831 | 831000 | +-------------------------+---------------------+
Ungültige Argumente
Wenn ein ungültiges Zeitargument übergeben wird, MICROSECOND()
gibt null
zurück :
SELECT MICROSECOND('10:75:00.123456');
Ergebnis:
+--------------------------------+ | MICROSECOND('10:75:00.123456') | +--------------------------------+ | NULL | +--------------------------------+
Fehlendes Argument
Aufruf von MICROSECOND()
mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:
SELECT MICROSECOND();
Ergebnis:
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
Und noch ein Beispiel:
SELECT MICROSECOND('10:30:45.123', '06:30:45.123');
Ergebnis:
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 1zu verwenden