sql >> Database teknologi >  >> RDS >> MariaDB

Sådan fungerer TIME_FORMAT() i MariaDB

I MariaDB, TIME_FORMAT() er en indbygget dato- og tidsfunktion, der formaterer en tidsværdi i henhold til den givne formatstreng.

Det virker på samme måde som DATE_FORMAT() funktion, bortset fra at formatstrengen kun må indeholde formatspecifikationer for timer, minutter og sekunder.

Det kræver to argumenter; klokkeslættet og formatstrengen.

Syntaks

Syntaksen ser sådan ud:

TIME_FORMAT(time,format) 

Hvor time er tidsværdien og format er formatstrengen. Se MariaDB Format Strings for en liste over acceptable formatspecifikationer. Som nævnt accepteres kun formatangivelserne for timer, minutter og sekunder. Alle andre værdier returnerer null .

Eksempel

Her er et eksempel:

SELECT TIME_FORMAT('10:30:45', '%H %i %S'); 

Resultat:

+--------------------------------------------+| TIME_FORMAT('10:30:45', '%H %i %S') |+-------------------------------- --------+| 10 30 45 |+---------------------------------------------+

Her er det igen, men denne gang giver vi en mere udførlig formatstreng:

SELECT TIME_FORMAT(
    '10:30:45', 
    '%H hours, %i minutes, and %S seconds'
    )
AS Result; 

Resultat:

+---------------------------------------------+| Resultat |+----------------------------------------------+| 10 timer, 30 minutter og 45 sekunder |+----------------------------------------------------+ 

Større timer

TIME værdier kan være i området '-838:59:59.999999' til '838:59:59.999999' .

Derfor kan timedelen være meget højere end 23 :

SELECT TIME_FORMAT(
    '810:30:45', 
    '%H hours, %i minutes, and %S seconds'
    )
AS Result; 

Resultat:

+----------------------------------------------+| Resultat |+----------------------------------------------+| 810 timer, 30 minutter og 45 sekunder |+---------------------------------------------------- +

Negative tidsværdier

Her er et eksempel med en negativ tidsværdi:

SELECT TIME_FORMAT(
    '-810:30:45', 
    '%H hours, %i minutes, and %S seconds'
    )
AS Result; 

Resultat:

+----------------------------------------+| Resultat |+----------------------------------------+| -810 timer, 30 minutter og 45 sekunder |+---------------------------------------------------- --+

Udenfor rækkevidde

Angivelse af en tidsværdi uden for området vil dog returnere den øvre grænse for dette område sammen med en advarsel:

SELECT TIME_FORMAT(
    '910:30:45', 
    '%H hours, %i minutes, and %S seconds'
    )
AS Result; 

Resultat:

+----------------------------------------------+| Resultat |+----------------------------------------------+| 838 timer, 59 minutter og 59 sekunder |+---------------------------------------------------- +1 række i sæt, 1 advarsel (0,003 sek.)

Lad os tjekke advarslen:

SHOW WARNINGS; 

Resultat:

+--------+------+------------------------------------- ----------------+| Niveau | Kode | Besked |+--------+------+-------------------------------------- ---------------+| Advarsel | 1292 | Afkortet forkert tidsværdi:'910:30:45' |+---------+------+------------------- --------------------------+

Ugyldige argumenter

Når ugyldige argumenter sendes, TIME_FORMAT() returnerer null med en advarsel:

SELECT TIME_FORMAT('Homer', 'Simpson'); 

Resultat:

+--------------------------------+| TIME_FORMAT('Homer', 'Simpson') |+----------------------------------------+| NULL |+---------------------------------+1 række i sæt, 1 advarsel (0,009 sek.) 

Tjek advarslen:

SHOW WARNINGS; 

Resultat:

+--------+------+------------------------------------- --+| Niveau | Kode | Besked |+--------+------+-------------------------------------- -+| Advarsel | 1292 | Forkert tidsværdi:'Homer' |+--------+------+------------------------ -------+

Ugyldig formatstreng

Formatstrengen må kun indeholde formatspecifikationer for timer, minutter og sekunder. Alle andre formatspecifikationer resulterer i null bliver returneret:

SELECT TIME_FORMAT('10:30:45', '%M %W'); 

Resultat:

+----------------------------------------+| TIME_FORMAT('10:30:45', '%M %W') |+------------------------------------- ---+| NULL |+------------------------------------------+

Manglende argument

Kalder TIME_FORMAT() med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:

SELECT TIME_FORMAT(); 

Resultat:

FEJL 1582 (42000):Forkert parameterantal i kaldet til den oprindelige funktion 'TIME_FORMAT'

Og endnu et eksempel:

SELECT TIME_FORMAT('10:09:10'); 

Resultat:

FEJL 1582 (42000):Forkert parameterantal i kaldet til den oprindelige funktion 'TIME_FORMAT'

  1. Nulstilling af array-pointer i PDO-resultater

  2. En datamodel til at holde styr på din mest dyrebare besiddelse

  3. Sådan bruger du MySQL med Deno og Eg

  4. Hvordan kontrollerer jeg NLS_LANG for klienten?