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

Wie TIME_FORMAT() in MariaDB funktioniert

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:

+--------------------------------------+| Ergebnis |+--------------------------------------------------+| 10 Stunden, 30 Minuten und 45 Sekunden |+---------------------------------------------------+

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'