In MySQL kunt u de TIME_FORMAT()
. gebruiken functie om een tijdwaarde op te maken.
Deze functie werkt net als de DATE_FORMAT()
functie, behalve dat de waarde alleen kan worden opgemaakt in uren, minuten, seconden en microseconden.
Zie de tabel onderaan dit artikel voor een lijst met formaatspecificaties die met deze functie kunnen worden gebruikt.
Syntaxis
De syntaxis gaat als volgt:
TIME_FORMAT(time,format)
Waar time
is de tijdwaarde die u wilt opmaken, en format
is de format string (dit bepaalt hoe de tijdwaarde daadwerkelijk wordt geformatteerd).
Voorbeeld 1 – Basisgebruik
Hier is een voorbeeld om te demonstreren.
SELECT TIME_FORMAT('14:35:27', '%r') AS 'Result';
Resultaat:
+-------------+ | Result | +-------------+ | 02:35:27 PM | +-------------+
Dit voorbeeld gebruikt de %r
formaatspecificatie, die de tijd opmaakt als 12-uur (uu:mm:ss gevolgd door AM of PM).
Voorbeeld 2 – Meer specifieke opmaak
Als het gebruik van een algemenere indelingsspecificatie zoals in het vorige voorbeeld niet geschikt is, zijn er verschillende andere indelingsspecificaties die u kunnen helpen bij het samenstellen van de gewenste indeling.
Als u bijvoorbeeld van het vorige formaat houdt, maar niet wilt dat de seconden worden geretourneerd, kunt u dit doen:
SELECT TIME_FORMAT('14:35:27', '%h:%i %p') AS 'Result';
Resultaat:
+----------+ | Result | +----------+ | 02:35 PM | +----------+
Voorbeeld 3 – 24 uur tijd
Er zijn ook formaatspecificaties voor 24-uurs tijd. Dit is de gemakkelijkste manier om de tijd op te maken met 24-uurs tijd.
SELECT TIME_FORMAT('14:35:27', '%T') AS 'Result';
Resultaat:
+----------+ | Result | +----------+ | 14:35:27 | +----------+
Voorbeeld 4 – Microseconden
Hier is een voorbeeld waarin het gedeelte met breuken in het resultaat is opgenomen:
SELECT TIME_FORMAT('14:35:27', '%H:%i:%s.%f') AS 'Result';
Resultaat:
+-----------------+ | Result | +-----------------+ | 14:35:27.000000 | +-----------------+
Natuurlijk kunnen we ook microseconden opnemen in de initiële tijdwaarde:
SELECT TIME_FORMAT('14:35:27.123456', '%H:%i:%s.%f') AS 'Result';
Resultaat:
+-----------------+ | Result | +-----------------+ | 14:35:27.123456 | +-----------------+
Voorbeeld 5 – Verstreken tijd
Het tijdgegevenstype is niet beperkt tot 24-uurs tijd. Het kan ook worden gebruikt om de verstreken tijd weer te geven. Als u deze functie voor verstreken tijd gebruikt, moet u weten hoe de uurnotatiespecificaties werken met tijdwaarden buiten het bereik van 0 tot 23.
In de MySQL-documentatie staat het volgende:
Als de tijdwaarde een uurdeel bevat dat groter is dan
23
, de%H
en%k
uurnotatiespecificaties produceren een waarde die groter is dan het gebruikelijke bereik van0..23
. De andere uurformaatspecificaties produceren de uurwaarde modulo12
.
Hier is een voorbeeld om te demonstreren:
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';
Resultaat:
+----------------+----------------+-----------------+-----------------+ | 24 | 48 | 100 | 500 | +----------------+----------------+-----------------+-----------------+ | 24 24 12 12 12 | 48 48 12 12 12 | 100 100 04 04 4 | 500 500 08 08 8 | +----------------+----------------+-----------------+-----------------+
Formaatspecificaties
De volgende specificaties kunnen worden gebruikt om het retourformaat te specificeren. Dit is een subset van die beschikbaar zijn met de DATE_FORMAT()
functie. De formaatwaarde moet beginnen met een procentteken (%
).
Beschrijving | Beschrijving |
---|---|
%f | Microseconden (000000 ..999999 ) |
%H | Uur (00 ..23 ) |
%h | Uur (01 ..12 ) |
%I | Uur (01 ..12 ) |
%i | Minuten, numeriek (00 ..59 ) |
%k | Uur (0 ..23 ) |
%l | Uur (1 ..12 ) |
%p | AM of PM |
%r | Tijd, 12 uur (hh:mm:ss gevolgd door AM of PM ) |
%S | Seconden (00 ..59 ) |
%s | Seconden (00 ..59 ) |
%T | Tijd, 24 uur (hh:mm:ss ) |
%% | Een letterlijke % karakter |