sql >> Database >  >> RDS >> Mysql

Seconden veranderen in een tijdwaarde in MySQL

Probleem:

U wilt in MySQL een aantal seconden weergeven als tijdswaarde in uren, minuten en seconden.

Voorbeeld:

Onze database heeft een tabel met de naam athlete_score met gegevens in de kolommen id , first_name , last_name , en score_seconds .

id voornaam achternaam score_seconden
1 Emily Watson 1124
2 Tom Garcia 987
3 Gary Martinez 1003
4 James Anderson 1233

Laten we voor elke atleet hun voor- en achternaam en hun recordtijd halen uit de seconds_record kolom. Op dit moment wordt het opgeslagen als een aantal seconden; laten we het in HH:MM:SS formaat weergeven.

Oplossing:

We gebruiken de SEC_TO_TIME() functie. Dit is de vraag die je zou schrijven:

SELECT first_name,
       last_name,
       SEC_TO_TIME(score_seconds)
         AS  score_time
FROM athlete_score;

Dit is het resultaat van de zoekopdracht:

voornaam achternaam score_time
Emily Watson 00:18:44
Tom Garcia 00:16:27
Gary Martinez 00:16:43
James Anderson 00:20:33

Discussie:

Gebruik de SEC_TO_TIME () functie als u een aantal seconden als tijdwaarde in MySQL wilt weergeven. Deze functie heeft slechts één argument nodig:een expressie die seconden als een geheel getal retourneert of een kolom die een aantal seconden als een geheel getal opslaat. (In ons voorbeeld gebruiken we de kolom score_seconds .)

SEC_TO_TIME() geeft de tijd terug in de indeling HH:MM:SS, waarbij HH een uur is van 00 tot 59, MM minuten zijn van 01 tot 59 en SS seconden zijn van 00 tot 59. In ons voorbeeld Emily Watson score in seconden is 1124 seconden; als tijdswaarde is dit 18 minuten en 44 seconden.


  1. Indexen hernoemen met sp_rename Procedure

  2. Hoe krijg ik kolomgegevenstype in Oracle met PL-SQL met lage privileges?

  3. regexp_substr slaat lege posities over

  4. Een overzicht van ProxySQL-clustering in ClusterControl