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'