MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie MICROSECOND() in MariaDB funktioniert

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 1
zu verwenden