In MariaDB TIME_FORMAT() ist eine eingebaute Datums- und Uhrzeitfunktion, die einen Zeitwert gemäß der angegebenen Formatzeichenfolge formatiert.
Es funktioniert ähnlich wie DATE_FORMAT() Funktion, außer dass die Formatzeichenfolge nur Formatbezeichner für Stunden, Minuten und Sekunden enthalten darf.
Es erfordert zwei Argumente; die Uhrzeit und den Formatstring.
Syntax
Die Syntax lautet wie folgt:
TIME_FORMAT(time,format)
Wo time ist der Zeitwert und format ist der Formatstring. Eine Liste akzeptabler Formatbezeichner finden Sie unter MariaDB-Formatzeichenfolgen. Wie bereits erwähnt, werden nur die Formatbezeichner für Stunden, Minuten und Sekunden akzeptiert. Alle anderen Werte geben null zurück .
Beispiel
Hier ist ein Beispiel:
SELECT TIME_FORMAT('10:30:45', '%H %i %S'); Ergebnis:
+-------------------------------------+| TIME_FORMAT('10:30:45', '%H %i %S') |+------------------------------------ --------+| 10 30 45 |+------------------------------------+ Hier ist es noch einmal, aber dieses Mal stellen wir einen ausgefeilteren Format-String zur Verfügung:
SELECT TIME_FORMAT(
'10:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result; Ergebnis:
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_FORMAT(
'810:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result; Ergebnis:
+--------------------------+| Ergebnis |+----------------------------------------------------+| 810 Stunden, 30 Minuten und 45 Sekunden |+--------------------------------------------------- +
Negative Zeitwerte
Hier ist ein Beispiel mit einem negativen Zeitwert:
SELECT TIME_FORMAT(
'-810:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result; Ergebnis:
+----------------------------------------+| Ergebnis |+----------------------------------------+| -810 Stunden, 30 Minuten und 45 Sekunden |+-------------------------------------------------- --+
Zeiten außerhalb des Bereichs
Wenn Sie jedoch einen Zeitwert außerhalb des Bereichs angeben, wird die obere Grenze dieses Bereichs zusammen mit einer Warnung zurückgegeben:
SELECT TIME_FORMAT(
'910:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result; Ergebnis:
+--------------------------+| Ergebnis |+----------------------------------------------------+| 838 Stunden, 59 Minuten und 59 Sekunden |+--------------------------------------------------- +1 Reihe im Satz, 1 Warnung (0,003 Sek.)
Sehen wir uns die Warnung an:
SHOW WARNINGS; Ergebnis:
+---------+------+------------------------------------- ----------------+| Ebene | Code | Nachricht |+---------+------+------------------------------ ---------------+| Warnung | 1292 | Abgeschnittener falscher Zeitwert:'910:30:45' |+---------+------+------------------- --------------------------+
Ungültige Argumente
Wenn ungültige Argumente übergeben werden, TIME_FORMAT() gibt null zurück mit einer Warnung:
SELECT TIME_FORMAT('Homer', 'Simpson'); Ergebnis:
+---------------------------------+| TIME_FORMAT('Homer', 'Simpson') |+----------------------------------------------+| NULL |+---------------------------------------------+1 Zeile im Satz, 1 Warnung (0,009 Sek.)Überprüfen Sie die Warnung:
SHOW WARNINGS; Ergebnis:
+---------+------+------------------------------------- --+| Ebene | Code | Nachricht |+---------+------+------------------------------ -+| Warnung | 1292 | Falscher Zeitwert:'Homer' |+---------+------+----------------------- -------+
Ungültiger Formatstring
Der Formatstring darf nur Formatbezeichner für Stunden, Minuten und Sekunden enthalten. Alle anderen Formatbezeichner führen zu null zurückgegeben:
SELECT TIME_FORMAT('10:30:45', '%M %W'); Ergebnis:
+----------------------------------------------+| TIME_FORMAT('10:30:45', '%M %W') |+------------------------------- ---+| NULL |+----------------------------------------------+ Fehlendes Argument
Aufruf von TIME_FORMAT() mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:
SELECT TIME_FORMAT(); Ergebnis:
FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion 'TIME_FORMAT'
Und noch ein Beispiel:
SELECT TIME_FORMAT('10:09:10'); Ergebnis:
FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion 'TIME_FORMAT'