sql >> Databáze >  >> RDS >> Mysql

Jak změnit sekundy na časovou hodnotu v MySQL

Problém:

V MySQL byste chtěli zobrazit počet sekund jako časovou hodnotu v hodinách, minutách a sekundách.

Příklad:

Naše databáze obsahuje tabulku s názvem athlete_score s údaji ve sloupcích id , first_name , last_name a score_seconds .

id first_name last_name score_seconds
1 Emily Watson 1124
2 Tome Garcia 987
3 Gary Martinez 1003
4 James Anderson 1233

U každého sportovce získáme jeho jméno a příjmení a rekordní čas z seconds_record sloupec. Právě teď je uložen jako počet sekund; zobrazme jej ve formátu HH:MM:SS.

Řešení:

Použijeme SEC_TO_TIME() funkce. Zde je dotaz, který byste napsali:

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

Zde je výsledek dotazu:

first_name last_name score_time
Emily Watson 00:18:44
Tome Garcia 00:16:27
Gary Martinez 00:16:43
James Anderson 00:20:33

Diskuse:

Použijte SEC_TO_TIME () pokud chcete v MySQL zobrazit počet sekund jako časovou hodnotu. Tato funkce přebírá pouze jeden argument – ​​buď výraz, který vrací sekundy jako celé číslo, nebo sloupec ukládající počet sekund jako celé číslo. (V našem příkladu používáme sloupec score_seconds .)

SEC_TO_TIME() vrátí čas ve formátu HH:MM:SS, kde HH je hodina od 00 do 59, MM jsou minuty od 01 do 59 a SS jsou sekundy od 00 do 59. V našem příkladu Emily Watson skóre v sekundách je 1124 sekund; jako časová hodnota je to 18 minut a 44 sekund.


  1. Dotazy MySQL

  2. jak zkopírovat data ze souboru do PostgreSQL pomocí JDBC?

  3. Oracle ORA-00979 - není výraz GROUP BY

  4. Jak používat analytické funkce v oracle (přes rozdělení podle klíčového slova)