Masalah:
Anda ingin menampilkan jumlah detik sebagai nilai waktu dalam jam, menit, dan detik di MySQL.
Contoh:
Basis data kami memiliki tabel bernama athlete_score
dengan data pada kolom id
, first_name
, last_name
, dan score_seconds
.
id | nama_depan | nama_belakang | skor_detik |
---|---|---|---|
1 | Emily | Watson | 1124 |
2 | Tom | Garcia | 987 |
3 | Gary | Martinez | 1003 |
4 | James | Anderson | 1233 |
Untuk setiap atlet, dapatkan nama depan dan belakang mereka serta catatan waktu mereka dari seconds_record
kolom. Saat ini, itu disimpan sebagai beberapa detik; mari kita tampilkan dalam format HH:MM:SS.
Solusi:
Kami akan menggunakan SEC_TO_TIME()
fungsi. Inilah kueri yang akan Anda tulis:
SELECT first_name, last_name, SEC_TO_TIME(score_seconds) AS score_time FROM athlete_score;
Berikut hasil querynya:
nama_depan | nama_belakang | skor_waktu |
---|---|---|
Emily | Watson | 00:18:44 |
Tom | Garcia | 00:16:27 |
Gary | Martinez | 00:16:43 |
James | Anderson | 00:20:33 |
Diskusi:
Gunakan SEC_TO_TIME
() berfungsi jika Anda ingin menampilkan beberapa detik sebagai nilai waktu di MySQL. Fungsi ini hanya membutuhkan satu argumen – baik ekspresi yang mengembalikan detik sebagai bilangan bulat atau kolom yang menyimpan beberapa detik sebagai bilangan bulat. (Dalam contoh kami, kami menggunakan kolom score_seconds
.)
SEC_TO_TIME()
mengembalikan waktu dalam format HH:MM:SS, di mana HH adalah satu jam dari 00 hingga 59, MM adalah menit dari 01 hingga 59, dan SS adalah detik dari 00 hingga 59. Dalam contoh kita, Emily Watson skor dalam detik adalah 1124 detik; sebagai nilai waktu, itu adalah 18 menit dan 44 detik.