sql >> Databasteknik >  >> RDS >> Mysql

TIME_FORMAT() Exempel – MySQL

I MySQL kan du använda TIME_FORMAT() funktion för att formatera ett tidsvärde.

Den här funktionen fungerar precis som DATE_FORMAT() funktion, förutom att värdet bara kan formateras i timmar, minuter, sekunder och mikrosekunder.

Se tabellen längst ner i den här artikeln för en lista över formatspecifikationer som kan användas med den här funktionen.

Syntax

Syntaxen ser ut så här:

TIME_FORMAT(time,format)

Där time är det tidsvärde du vill ha formaterat och format är formatsträngen (detta bestämmer hur tidsvärdet faktiskt formateras).

Exempel 1 – Grundläggande användning

Här är ett exempel att visa.

SELECT TIME_FORMAT('14:35:27', '%r') AS 'Result';

Resultat:

+-------------+
| Result      |
+-------------+
| 02:35:27 PM |
+-------------+

Det här exemplet använder %r formatspecifikation, som formaterar tiden som 12 timmar (hh:mm:ss följt av AM eller PM).

Exempel 2 – Mer specifik formatering

Om det inte är lämpligt att använda en mer generell formatspecifikation som i det föregående exemplet, finns det flera andra formatspecifikationer som kan hjälpa dig att bygga det format du behöver.

Till exempel, om du gillar det tidigare formatet, men du inte vill att sekunderna ska returneras, kan du göra så här:

SELECT TIME_FORMAT('14:35:27', '%h:%i %p') AS 'Result';

Resultat:

+----------+
| Result   |
+----------+
| 02:35 PM |
+----------+

Exempel 3 – 24 timmars tid

Det finns också formatspecifikationer för 24 timmars tid. Här är det enklaste sättet att formatera tiden med 24 timmars tid.

SELECT TIME_FORMAT('14:35:27', '%T') AS 'Result';

Resultat:

+----------+
| Result   |
+----------+
| 14:35:27 |
+----------+

Exempel 4 – Mikrosekunder

Här är ett exempel som inkluderar bråkdelssekundersdelen i resultatet:

SELECT TIME_FORMAT('14:35:27', '%H:%i:%s.%f') AS 'Result';

Resultat:

+-----------------+
| Result          |
+-----------------+
| 14:35:27.000000 |
+-----------------+

Naturligtvis kan vi också inkludera mikrosekunder i det initiala tidsvärdet:

SELECT TIME_FORMAT('14:35:27.123456', '%H:%i:%s.%f') AS 'Result';

Resultat:

+-----------------+
| Result          |
+-----------------+
| 14:35:27.123456 |
+-----------------+

Exempel 5 – Förfluten tid

Tidsdatatypen är inte begränsad till 24 timmars tid. Den kan också användas för att representera förfluten tid. När du använder den här funktionen för förfluten tid bör du vara medveten om hur timformatsspecifikationerna fungerar med tidsvärden utanför intervallet 0 till 23.

MySQL-dokumentationen anger följande:

Om tidsvärdet innehåller en timdel som är större än 23 , %H och %k timformatsspecifikationer producerar ett värde som är större än det vanliga intervallet 0..23 . De andra timformatsspecifikationerna producerar timvärdet modulo 12 .

Här är ett exempel att visa:

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';

Resultat:

+----------------+----------------+-----------------+-----------------+
| 24             | 48             | 100             | 500             |
+----------------+----------------+-----------------+-----------------+
| 24 24 12 12 12 | 48 48 12 12 12 | 100 100 04 04 4 | 500 500 08 08 8 |
+----------------+----------------+-----------------+-----------------+

Formatspecifikationer

Följande specifikationer kan användas för att ange returformatet. Dessa är en delmängd av de som är tillgängliga med DATE_FORMAT() fungera. Formatvärdet måste börja med ett procenttecken (% ).

Specifierare Beskrivning
%f Mikrosekunder (000000 ..999999 )
%H Timme (00 ..23 )
%h Timme (01 ..12 )
%I Timme (01 ..12 )
%i Minuter, numeriska (00 ..59 )
%k Timme (0 ..23 )
%l Timme (1 ..12 )
%p AM eller PM
%r Tid, 12 timmar (hh:mm:ss följt av AM eller PM )
%S Sekunder (00 ..59 )
%s Sekunder (00 ..59 )
%T Tid, 24 timmar (hh:mm:ss )
%% En bokstavlig % tecken


  1. Slå samman överlappande datumintervall

  2. Vad är MySQL-ekvivalenten för SQL Servers CHOOSE()-funktion?

  3. django.db.utils.OperationalError Kunde inte ansluta till servern

  4. Hur skapar och frågar jag länkade databasservrar i SQL Server?