sql >> Databasteknik >  >> RDS >> Mysql

Hur man ändrar sekunder till ett tidsvärde i MySQL

Problem:

Du vill visa ett antal sekunder som ett tidsvärde i timmar, minuter och sekunder i MySQL.

Exempel:

Vår databas har en tabell som heter athlete_score med data i kolumnerna id , first_name , last_name och score_seconds .

id förnamn efternamn score_seconds
1 Emily Watson 1124
2 Tom Garcia 987
3 Gary Martinez 1003
4 James Anderson 1233

För varje idrottare, låt oss få deras för- och efternamn och deras rekordtid från seconds_record kolumn. Just nu lagras det som ett antal sekunder; låt oss visa det i HH:MM:SS-format.

Lösning:

Vi använder SEC_TO_TIME() fungera. Här är frågan du skulle skriva:

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

Här är resultatet av frågan:

förnamn efternamn score_time
Emily Watson 00:18:44
Tom Garcia 00:16:27
Gary Martinez 00:16:43
James Anderson 00:20:33

Diskussion:

Använd SEC_TO_TIME () funktion om du vill visa ett antal sekunder som ett tidsvärde i MySQL. Den här funktionen tar bara ett argument – ​​antingen ett uttryck som returnerar sekunder som ett heltal eller en kolumn som lagrar ett antal sekunder som ett heltal. (I vårt exempel använder vi kolumnen score_seconds .)

SEC_TO_TIME() returnerar tiden i formatet TT:MM:SS, där TT är en timme från 00 till 59, MM är minuter från 01 till 59 och SS är sekunder från 00 till 59. I vårt exempel, Emily Watson poäng i sekunder är 1124 sekunder; som tidsvärde är det 18 minuter och 44 sekunder.


  1. FEL:kunde inte ange filen XX.csv:Okänt fel

  2. Lösningar för INFOGA ELLER UPPDATERA på SQL Server

  3. EM 12c Justering av tröskelvärden

  4. Hur hämtar man det aktuella värdet av en orakelsekvens utan att öka den?