sql >> Database >  >> RDS >> Mysql

TIME_FORMAT() Voorbeelden – MySQL

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 van 0..23 . De andere uurformaatspecificaties produceren de uurwaarde modulo 12 .

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


  1. Gelijk aan unpivot() in PostgreSQL

  2. Snellere innovatie leveren aan de gemeenschap van MariaDB

  3. SQL Server-geschiedenistabel - vullen via SP of Trigger?

  4. Meerdere kolommen bijwerken in PostgreSQL