sql >> Database teknologi >  >> RDS >> Mysql

TIME_FORMAT() Eksempler – MySQL

I MySQL kan du bruge TIME_FORMAT() funktion til at formatere en tidsværdi.

Denne funktion fungerer ligesom DATE_FORMAT() funktion, bortset fra at værdien kun kan formateres i timer, minutter, sekunder og mikrosekunder.

Se tabellen nederst i denne artikel for en liste over formatspecifikationer, der kan bruges med denne funktion.

Syntaks

Syntaksen ser sådan ud:

TIME_FORMAT(time,format)

Hvor time er den tidsværdi, du ønsker formateret, og format er formatstrengen (dette bestemmer, hvordan tidsværdien faktisk formateres).

Eksempel 1 – Grundlæggende brug

Her er et eksempel til at demonstrere.

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

Resultat:

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

Dette eksempel bruger %r formatspecifikation, som formaterer tiden som 12 timer (tt:mm:ss efterfulgt af AM eller PM).

Eksempel 2 – Mere specifik formatering

Hvis det ikke er egnet at bruge en mere generel formatspecifikation som i det foregående eksempel, er der forskellige andre formatspecifikationer, der kan hjælpe dig med at bygge det format, du har brug for.

For eksempel, hvis du kan lide det forrige format, men du ikke ønsker, at sekunderne skal returneres, kan du gøre dette:

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

Resultat:

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

Eksempel 3 – 24 timers tid

Der er også formatspecifikationer for 24 timers tid. Her er den nemmeste måde at formatere tiden med 24 timers tid.

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

Resultat:

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

Eksempel 4 – Mikrosekunder

Her er et eksempel, der inkluderer brøksekunderdelen i resultatet:

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

Resultat:

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

Vi kan selvfølgelig også inkludere mikrosekunder i den indledende tidsværdi:

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

Resultat:

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

Eksempel 5 – Forløbet tid

Tidsdatatypen er ikke begrænset til 24 timers tid. Det kan også bruges til at repræsentere forløbet tid. Når du bruger denne funktion for forløbet tid, skal du være opmærksom på, hvordan timeformatspecifikationerne fungerer med tidsværdier uden for området 0 til 23.

MySQL-dokumentationen siger følgende:

Hvis tidsværdien indeholder en timedel, der er større end 23 , %H og %k timeformatspecifikationer producerer en værdi, der er større end det sædvanlige interval på 0..23 . De andre timeformatspecifikationer producerer timeværdien modulo 12 .

Her er et eksempel til demonstration:

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ølgende specifikationer kan bruges til at angive returformatet. Disse er en undergruppe af dem, der er tilgængelige med DATE_FORMAT() fungere. Formatværdien skal starte med et procenttegn (% ).

Specifier Beskrivelse
%f Mikrosekunder (000000 ..999999 )
%H Time (00 ..23 )
%h Time (01 ..12 )
%I Time (01 ..12 )
%i Minutter, numerisk (00 ..59 )
%k Time (0 ..23 )
%l Time (1 ..12 )
%p AM eller PM
%r Tid, 12 timer (hh:mm:ss efterfulgt af AM eller PM )
%S Sekunder (00 ..59 )
%s Sekunder (00 ..59 )
%T Tid, 24 timer (hh:mm:ss )
%% En bogstavelig % tegn


  1. Sådan opretter du en bruger i Oracle 11g og giver tilladelser

  2. Sådan repareres MySQL-databaser og tabeller

  3. Er der et alvorligt præstationshit for at bruge udenlandske nøgler i SQL Server?

  4. Hvorfor får jeg OutOfRange Exception i GetOrdinal Function i dette CLOB-felt?