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

การเพิ่มเวลาในคอลัมน์ TIME ด้วย INTERVAL ใน MySQL

เมื่อต้องการเพิ่มหรือลดเวลาในคอลัมน์ชนิด TIME สามารถใช้ฟังก์ชัน DATE_ADD() หรือ DATE_SUB() ร่วมกับ INTERVAL ได้

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

mysql> create table DemoTable ( 
    DelayTime time ); 
Query OK, 0 rows affected (1.21 sec)

เพิ่มข้อมูลตัวอย่าง

mysql> insert into DemoTable values('11:30:10'); Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable values('12:40:00'); Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('05:45:24'); Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values('09:00:10'); Query OK, 1 row affected (0.18 sec)

แสดงข้อมูลก่อนเปลี่ยนแปลง

mysql> select *from DemoTable;
+------------+
| DelayTime  |
+------------+
| 11:30:10   |
| 12:40:00   |
| 05:45:24   |
| 09:00:10   |
+------------+
4 rows in set (0.00 sec)

คิวรี่เพิ่ม 10 วินาที และแสดงในคอลัมน์ใหม่

mysql> select date_add(DelayTime,interval 10 second) AS `NewDelayTime` from DemoTable;

ผลลัพธ์:

+--------------+
| NewDelayTime |
+--------------+
| 11:30:20     |
| 12:40:10     |
| 05:45:34     |
| 09:00:20     |
+--------------+
4 rows in set (0.00 sec)

รูปแบบ INTERVAL สำหรับเวลา

  • INTERVAL n SECOND - วินาที
  • INTERVAL n MINUTE - นาที
  • INTERVAL n HOUR - ชั่วโมง
  • INTERVAL 'hh:mm:ss' HOUR_SECOND - รวมชั่วโมง นาที วินาที

การอัปเดตข้อมูลจริง (UPDATE)

หากต้องการอัปเดตค่าในตารางจริง:

mysql> update DemoTable set DelayTime = date_add(DelayTime, interval 10 second);

หมายเหตุ

ชนิดข้อมูล TIME ใน MySQL เก็บค่าเวลาในช่วง '-838:59:59' ถึง '838:59:59' การบวก INTERVAL อาจทำให้เกินช่วงได้ ต้องระวังกรณีข้ามวัน