In MariaDB TIME()
ist eine integrierte Datums- und Zeitfunktion, die den Zeitteil aus einem gegebenen Zeit- oder Datumszeitausdruck extrahiert und als Zeichenfolge zurückgibt.
Es akzeptiert ein Argument, nämlich den Zeit- oder Datumszeitwert, für den Sie die Zeit extrahieren möchten.
Syntax
Die Syntax lautet wie folgt:
TIME(expr)
Wobei expr
ist der Zeit- oder Datumszeitausdruck, für den die Zeit extrahiert werden soll.
Beispiel
Hier ist ein Beispiel zur Veranschaulichung:
SELECT TIME('2030-02-01 10:30:45');
Ergebnis:
+-----------------------------+ | TIME('2030-02-01 10:30:45') | +-----------------------------+ | 10:30:45 | +-----------------------------+
Zeitwerte
Hier ist ein Beispiel, das die Zeit aus einem Zeitwert extrahiert:
SELECT TIME('10:30:45');
Ergebnis:
+------------------+ | TIME('10:30:45') | +------------------+ | 10:30:45 | +------------------+
Mikrosekunden
Hier ist ein Beispiel, das Mikrosekunden enthält:
SELECT TIME('2030-02-01 10:30:45.123456');
Ergebnis:
+------------------------------------+ | TIME('2030-02-01 10:30:45.123456') | +------------------------------------+ | 10:30:45.123456 | +------------------------------------+
Größere Öffnungszeiten
TIME
Werte können im Bereich '-838:59:59.999999'
liegen zu '838:59:59.999999'
.
Daher kann der Stundenanteil viel höher als 23
sein :
SELECT TIME('578:30:45');
Ergebnis:
+-------------------+ | TIME('578:30:45') | +-------------------+ | 578:30:45 | +-------------------+
Negative Zeiten
Negative Zeiten sind gültig:
Beispiel
SELECT TIME('-578:30:45');
Ergebnis:
+--------------------+ | TIME('-578:30:45') | +--------------------+ | -578:30:45 | +--------------------+
Außerhalb des Bereichs Stunden
Zeitwerte außerhalb des Bereichs '-838:59:59.999999'
zu '838:59:59.999999'
sind an der relevanten Grenze begrenzt und enthalten eine Warnung.
Beispiel:
SELECT TIME('978:30:45');
Ergebnis (bei vertikaler Ausgabe):
+-------------------+ | TIME('978:30:45') | +-------------------+ | 838:59:59 | +-------------------+ 1 row in set, 1 warning (0.003 sec)
Sehen wir uns die Warnung an:
SHOW WARNINGS;
Ergebnis (bei vertikaler Ausgabe):
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '978:30:45' | +---------+------+---------------------------------------------+
Aktuelles Datum
Wir können NOW()
übergeben als datetime-Argument, um die aktuelle Uhrzeit zu verwenden:
SELECT
NOW(),
TIME(NOW());
Ergebnis:
+---------------------+-------------+ | NOW() | TIME(NOW()) | +---------------------+-------------+ | 2021-05-27 10:24:23 | 10:24:23 | +---------------------+-------------+
Ungültige Argumente
Wenn ein ungültiges Argument übergeben wird, TIME()
gibt null
zurück mit einer Warnung:
SELECT TIME('Ten Thirty AM');
Ergebnis:
+-----------------------+ | TIME('Ten Thirty AM') | +-----------------------+ | NULL | +-----------------------+ 1 row in set, 1 warning (0.002 sec)
Überprüfen Sie die Warnung:
SHOW WARNINGS;
Ergebnis:
+---------+------+---------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------+ | Warning | 1292 | Incorrect time value: 'Ten Thirty AM' | +---------+------+---------------------------------------+
Fehlendes Argument
Aufruf von TIME()
mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:
SELECT TIME();
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 TIME('10:30:45', '06:30:45');
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')' at line 1