In MySQL können Sie das TIME_FORMAT()
verwenden Funktion zum Formatieren eines Zeitwerts.
Diese Funktion funktioniert genauso wie DATE_FORMAT()
Funktion, außer dass der Wert nur in Stunden, Minuten, Sekunden und Mikrosekunden formatiert werden kann.
In der Tabelle am Ende dieses Artikels finden Sie eine Liste der Formatbezeichner, die mit dieser Funktion verwendet werden können.
Syntax
Die Syntax lautet wie folgt:
TIME_FORMAT(time,format)
Wo time
ist der Zeitwert, den Sie formatieren möchten, und format
ist die Formatzeichenfolge (dies bestimmt, wie der Zeitwert tatsächlich formatiert wird).
Beispiel 1 – Grundlegende Verwendung
Hier ist ein Beispiel zur Veranschaulichung.
SELECT TIME_FORMAT('14:35:27', '%r') AS 'Result';
Ergebnis:
+-------------+ | Result | +-------------+ | 02:35:27 PM | +-------------+
Dieses Beispiel verwendet den %r
Formatbezeichner, der die Uhrzeit im 12-Stunden-Format formatiert (hh:mm:ss gefolgt von AM oder PM).
Beispiel 2 – Spezifischere Formatierung
Wenn die Verwendung eines allgemeineren Formatbezeichners wie im vorherigen Beispiel nicht geeignet ist, gibt es verschiedene andere Formatbezeichner, die Ihnen helfen können, das gewünschte Format zu erstellen.
Wenn Ihnen beispielsweise das vorherige Format gefällt, Sie aber nicht möchten, dass die Sekunden zurückgegeben werden, können Sie Folgendes tun:
SELECT TIME_FORMAT('14:35:27', '%h:%i %p') AS 'Result';
Ergebnis:
+----------+ | Result | +----------+ | 02:35 PM | +----------+
Beispiel 3 – 24-Stunden-Zeit
Es gibt auch Formatbezeichner für die 24-Stunden-Zeit. Hier ist der einfachste Weg, die Uhrzeit im 24-Stunden-Format zu formatieren.
SELECT TIME_FORMAT('14:35:27', '%T') AS 'Result';
Ergebnis:
+----------+ | Result | +----------+ | 14:35:27 | +----------+
Beispiel 4 – Mikrosekunden
Hier ist ein Beispiel, das den Sekundenbruchteil im Ergebnis enthält:
SELECT TIME_FORMAT('14:35:27', '%H:%i:%s.%f') AS 'Result';
Ergebnis:
+-----------------+ | Result | +-----------------+ | 14:35:27.000000 | +-----------------+
Natürlich können wir auch Mikrosekunden in den anfänglichen Zeitwert aufnehmen:
SELECT TIME_FORMAT('14:35:27.123456', '%H:%i:%s.%f') AS 'Result';
Ergebnis:
+-----------------+ | Result | +-----------------+ | 14:35:27.123456 | +-----------------+
Beispiel 5 – Verstrichene Zeit
Der Zeitdatentyp ist nicht auf die 24-Stunden-Zeit beschränkt. Es kann auch verwendet werden, um die verstrichene Zeit darzustellen. Wenn Sie diese Funktion für die verstrichene Zeit verwenden, sollten Sie sich darüber im Klaren sein, wie die Stundenformatbezeichner mit Zeitwerten außerhalb des Bereichs von 0 bis 23 funktionieren.
In der MySQL-Dokumentation heißt es:
Wenn der Zeitwert einen Stundenteil enthält, der größer als 23
ist , der %H
und %k
Stundenformatbezeichner erzeugen einen Wert, der größer als der übliche Bereich von 0..23
ist . Die anderen Stundenformatbezeichner erzeugen den Stundenwert modulo 12
.
Hier ist ein Beispiel zur Veranschaulichung:
SELECT TIME_FORMAT('24:00:00', '%H %k %h %I %l') AS '24', TIME_FORMAT('48:00:00', '%H %k %h %I %l') AS '48', TIME_FORMAT('100:00:00', '%H %k %h %I %l') AS '100', TIME_FORMAT('500:00:00', '%H %k %h %I %l') AS '500';
Ergebnis:
+----------------+----------------+-----------------+-----------------+ | 24 | 48 | 100 | 500 | +----------------+----------------+-----------------+-----------------+ | 24 24 12 12 12 | 48 48 12 12 12 | 100 100 04 04 4 | 500 500 08 08 8 | +----------------+----------------+-----------------+-----------------+
Formatbezeichner
Die folgenden Bezeichner können verwendet werden, um das Rückgabeformat anzugeben. Dies ist eine Teilmenge derjenigen, die mit DATE_FORMAT()
verfügbar sind Funktion. Der Formatwert muss mit einem Prozentzeichen beginnen (%
).
Bezeichner | Beschreibung |
---|---|
%f | Mikrosekunden (000000 ..999999 ) |
%H | Stunde (00 ..23 ) |
%h | Stunde (01 ..12 ) |
%I | Stunde (01 ..12 ) |
%i | Minuten, numerisch (00 ..59 ) |
%k | Stunde (0 ..23 ) |
%l | Stunde (1 ..12 ) |
%p | AM oder PM |
%r | Zeit, 12 Stunden (hh:mm:ss gefolgt von AM oder PM ) |
%S | Sekunden (00 ..59 ) |
%s | Sekunden (00 ..59 ) |
%T | Uhrzeit, 24 Stunden (hh:mm:ss ) |
%% | Ein Literal % Charakter |