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

คำนวณระยะเวลารวม (บวกเวลา) ใน MySQL

เพื่อคำนวณผลรวมของเวลา (time) ใน MySQL ให้แปลงเวลาเป็นวินาทีด้วย TIME_TO_SEC() บวกกัน แล้วแปลงกลับด้วย SEC_TO_TIME()

รูปแบบคำสั่ง

SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(timeColumn))) AS TotalTime FROM yourTableName;

ตัวอย่างเต็ม

1. สร้างตาราง

mysql> create table AddTotalTimeDemo (
    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> LoginTime time
    -> );

2. เพิ่มข้อมูล

mysql> insert into AddTotalTimeDemo(LoginTime) values('05:05:00');
mysql> insert into AddTotalTimeDemo(LoginTime) values('07:20:00');
mysql> insert into AddTotalTimeDemo(LoginTime) values('02:05:00');
mysql> insert into AddTotalTimeDemo(LoginTime) values('03:03:00');
mysql> insert into AddTotalTimeDemo(LoginTime) values('05:07:00');

3. คำนวณผลรวม

mysql> SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(LoginTime))) AS TotalTime from AddTotalTimeDemo;
+-----------+
| TotalTime |
+-----------+
| 22:40:00  |
+-----------+

การทำงานเบื้องหลัง

  1. TIME_TO_SEC('05:05:00') → 18300 วินาที
  2. บวกทุกแถว: 18300 + 26400 + 7500 + 11100 + 18420 = 81720 วินาที
  3. SEC_TO_TIME(81720) → '22:40:00'

ข้อจำกัด

  • ชนิดข้อมูล TIME รองรับได้สูงสุด '838:59:59'
  • หากผลรวมเกิน จะต้องใช้การคำนวณแบบอื่น (เช่น แยกวัน ชั่วโมง นาที วินาที)