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 |