Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

แปลงนาที (INT) เป็น TIME ใน MySQL ด้วย SEC_TO_TIME

ใช้ฟังก์ชัน SEC_TO_TIME() แปลงวินาทีเป็น TIME (HH:MM:SS) โดยคูณนาทีด้วย 60

ไวยากรณ์

SELECT SEC_TO_TIME(yourIntColumnName * 60) AS anyAliasName FROM yourTableName;

สร้างตารางตัวอย่าง

mysql> CREATE TABLE convertNumberToMinute (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> NumberToMinute INT
    -> );

เพิ่มข้อมูลตัวอย่าง (60-120 นาที)

mysql> INSERT INTO convertNumberToMinute(NumberToMinute) VALUES
(60), (70), (80), (90), (100), (110), (120);

แสดงข้อมูลทั้งหมด

mysql> SELECT * FROM convertNumberToMinute;

ผลลัพธ์:

+----+----------------+
| Id | NumberToMinute |
+----+----------------+
| 1  | 60             |
| 2  | 70             |
| 3  | 80             |
| 4  | 90             |
| 5  | 100            |
| 6  | 110            |
| 7  | 120            |
+----+----------------+

แปลงนาทีเป็น TIME

mysql> SELECT SEC_TO_TIME(NumberToMinute * 60) AS MinuteDemo FROM convertNumberToMinute;

ผลลัพธ์:

+------------+
| MinuteDemo |
+------------+
| 01:00:00   |
| 01:10:00   |
| 01:20:00   |
| 01:30:00   |
| 01:40:00   |
| 01:50:00   |
| 02:00:00   |
+------------+

แสดงคู่กัน (นาที และ เวลา)

mysql> SELECT NumberToMinute, SEC_TO_TIME(NumberToMinute * 60) AS MinuteDemo FROM convertNumberToMinute;

ผลลัพธ์:

+----------------+------------+
| NumberToMinute | MinuteDemo |
+----------------+------------+
| 60             | 01:00:00   |
| 70             | 01:10:00   |
| 80             | 01:20:00   |
| 90             | 01:30:00   |
| 100            | 01:40:00   |
| 110            | 01:50:00   |
| 120            | 02:00:00   |
+----------------+------------+

ฟังก์ชันเกี่ยวข้อง

  • TIME_TO_SEC(time) - แปลง TIME เป็นวินาที (ย้อนกลับ)
  • SEC_TO_TIME(seconds) - แปลงวินาทีเป็น TIME
  • TIME_FORMAT(time, format) - จัดรูปแบบ TIME (เช่น %H:%i เพื่อซ่อนวินาที)

กรณีเกิน 24 ชั่วโมง

SEC_TO_TIME รองรับได้ถึง 838:59:59 (ประมาณ 34 วัน) เกินกว่านี้จะคืนค่า NULL