ใช้ INTERVAL Arithmetic บวกช่วงเวลากับ DATETIME
MySQL รองรับการบวก/ลบ INTERVAL กับ DATE, DATETIME, TIMESTAMP โดยตรง สามารถรวมหลายหน่วยเวลาได้
สร้างตารางและข้อมูล
mysql> CREATE TABLE DemoTable1509 (ArrivalTime DATETIME);
Query OK, 0 rows affected (0.51 sec)
mysql> INSERT INTO DemoTable1509 VALUES
-> ('2018-01-21 10:20:30'),
-> ('2019-04-01 11:00:00'),
-> ('2015-12-12 05:45:20');
Query OK, 3 rows affected
ข้อมูลก่อนอัปเดต
+---------------------+ | ArrivalTime | +---------------------+ | 2018-01-21 10:20:30 | | 2019-04-01 11:00:00 | | 2015-12-12 05:45:20 | +---------------------+
คำสั่ง UPDATE: บวก INTERVAL หลายหน่วย
mysql> UPDATE DemoTable1509
-> SET ArrivalTime = ArrivalTime
-> + INTERVAL 10 YEAR
-> + INTERVAL 3 MONTH
-> + INTERVAL 22 DAY
-> + INTERVAL 10 HOUR
-> + INTERVAL 30 MINUTE;
Query OK, 3 rows affected (0.17 sec)
Rows matched: 3 Changed: 3 Warnings: 0
ข้อมูลหลังอัปเดต
+---------------------+ | ArrivalTime | +---------------------+ | 2028-05-13 20:50:30 | | 2029-07-23 21:30:00 | | 2026-04-03 16:15:20 | +---------------------+
ตรวจสอบการคำนวณ (แถวแรก)
- ต้นฉบับ: 2018-01-21 10:20:30
- +10 ปี → 2028-01-21 10:20:30
- +3 เดือน → 2028-04-21 10:20:30
- +22 วัน → 2028-05-13 10:20:30
- +10 ชั่วโมง → 2028-05-13 20:20:30
- +30 นาที → 2028-05-13 20:50:30 ✓
รูปแบบ INTERVAL ที่รองรับ
| หน่วย | ตัวอย่าง |
|---|---|
| MICROSECOND | INTERVAL 500 MICROSECOND |
| SECOND | INTERVAL 30 SECOND |
| MINUTE | INTERVAL 30 MINUTE |
| HOUR | INTERVAL 10 HOUR |
| DAY | INTERVAL 22 DAY |
| WEEK | INTERVAL 3 WEEK |
| MONTH | INTERVAL 3 MONTH |
| QUARTER | INTERVAL 2 QUARTER |
| YEAR | INTERVAL 10 YEAR |
| รวม (Compound) | INTERVAL '1 10:30:30' DAY_SECOND |