Vấn đề:
Bạn muốn hiển thị một số giây dưới dạng giá trị thời gian tính bằng giờ, phút và giây trong MySQL.
Ví dụ:
Cơ sở dữ liệu của chúng tôi có một bảng tên là athlete_score
với dữ liệu trong các cột id
, first_name
, last_name
và score_seconds
.
id | first_name | last_name | score_seconds |
---|---|---|---|
1 | Emily | Watson | 1124 |
2 | Tom | Garcia | 987 |
3 | Gary | Martinez | 1003 |
4 | James | Anderson | 1233 |
Đối với mỗi vận động viên, hãy lấy họ và tên của họ và thời gian kỷ lục của họ từ seconds_record
cột. Hiện tại, nó được lưu trữ dưới dạng một số giây; hãy hiển thị nó ở định dạng HH:MM:SS.
Giải pháp:
Chúng tôi sẽ sử dụng SEC_TO_TIME()
hàm số. Đây là truy vấn bạn sẽ viết:
SELECT first_name, last_name, SEC_TO_TIME(score_seconds) AS score_time FROM athlete_score;
Đây là kết quả của truy vấn:
first_name | last_name | score_time |
---|---|---|
Emily | Watson | 00:18:44 |
Tom | Garcia | 00:16:27 |
Gary | Martinez | 00:16:43 |
James | Anderson | 00:20:33 |
Thảo luận:
Sử dụng SEC_TO_TIME
() hàm nếu bạn muốn hiển thị một số giây dưới dạng giá trị thời gian trong MySQL. Hàm này chỉ nhận một đối số - một biểu thức trả về giây dưới dạng số nguyên hoặc một cột lưu trữ số giây dưới dạng số nguyên. (Trong ví dụ của chúng tôi, chúng tôi sử dụng cột score_seconds
.)
SEC_TO_TIME()
trả về thời gian ở định dạng HH:MM:SS, trong đó HH là một giờ từ 00 đến 59, MM là phút từ 01 đến 59 và SS là giây từ 00 đến 59. Trong ví dụ của chúng tôi, Emily Watson điểm tính bằng giây là 1124 giây; dưới dạng giá trị thời gian, nó là 18 phút 44 giây.